2013-07-09 1 views
1

Это мой второй вопрос сегодня, но то, что я хочу знать ... Возможно ли получить информацию из обработчика сигнала.Получение информации от пользовательского приемника сигналов Django

У меня есть список предметов, назовите его и каждый элемент находится в AppA. Каждый элемент имеет пару характеристик, которые сохраняются в другом приложении AppB.

Итак, я понял, что могу создать словарь, прописать и перебрать элементы в списке. В каждой итерации, я надеюсь послать сигнал AppB и извлечение информации, то есть что-то вроде

def blob(request): 
    dict = {} 
    for item in list: 
     signal.send(sender=None, id=item.id) 
     dict[item] = (char1, char2) 
    ...some html request 

обработчика Моего сигнала выглядит примерно так:

def handler(sender, id, **kwargs): 
    model2 = Model2.objects.get(id=id) 
    a = model2.char1 
    b = model2.char2 
    return (a, b) 

Тогда я надеялся быть способный просто составить список элементов и их характеристики на веб-странице ... Проблема заключается в том, что, очевидно, отправитель сигнала должен отправить сигнал и получить обратно информацию, которую я хочу ..., что даже возможно: S ?

В настоящее время я получаю сообщение об ошибке «global name» char1 'не определено .... и я импортировал обработчики и сигналы в view.py, где находится blob .... так что моя проблема просто неразрешима ?/Должно ли это быть однозначно решено по-другому? Или я почти наверняка сделал глупую ошибку при импорте вещей?

+0

Вы хотите отправить некоторые данные через сигнал, а затем вернуть данные из сигнала, когда это будет сделано? –

+0

Да, и, надеюсь, использовать указанные данные в запросе html в конце blob. – user2564502

+0

Вы хотите начать просмотр очередей сообщений для этого. Сельдерей - это клиент для Django. –

ответ

0

Это было не так сложно. Думал, что я должен был бы опубликовать, как это было решено. По моим взглядам, Я на самом деле написал

response_list=signal.send(sender=None, list=list_of_items) 

я итерация над моей response_list, добавляя элементы на свежий список, как так:

snippets = [] 
    for response in response_list: 
    logger.error(response) 
    snippets.append(response[1]) 

И мог бы затем вызвать ответы в виде фрагментов, как словарь в моем шаблоне. Когда я задал вопрос, я не оценил, что я мог бы приравнивать что-то с отправкой сигнала ...

Смежные вопросы