Возможно ли использовать контекстные процессоры в Django без объекта запроса? - PullRequest
4 голосов
/ 02 октября 2011

Документация Django описывает использование контекстных процессоров, когда у вас есть экземпляр запроса - типичное использование - RequestContext вместо Context при визуализации шаблона.

Но что, если вам нужны контекстные процессоры, но они не работают в цикле запрос / ответ?Примером использования является отображение шаблонов в ответ на сигналы или команды управления для отчетов по электронной почте.Очень неудобно либо предварительно визуализировать любой контент в цикле запроса (и, таким образом, терять преимущество слабой связи, которое предоставляют сигналы), либо вручную вызывать контекст, такой как «сайт», для каждого вызова рендеринга..

Есть ли способ получить контекстные процессоры по умолчанию, когда нет экземпляра request?

Ответы [ 2 ]

0 голосов
/ 02 октября 2011

Если рендеринг ваших шаблонов требует запроса, почему бы не передать его как параметр sender при отправке сигнала

def my_view(request):
    my_signal.send(sender=request, foo=True)
    return HttpResponse("YadaYadaYada")
0 голосов
/ 02 октября 2011

Ну, вы можете получить то, что они являются через ...settings.TEMPLATE_CONTEXT_PROCESSORS, но вы не можете использовать их, так как для этого вам нужен экземпляр запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...