2011-10-02 84 views
4

Django documentation描述了當您有請求實例時使用上下文處理器 - 典型的用法是在渲染模板時使用RequestContext而不是Context是否有可能在沒有請求對象的情況下在Django中使用上下文處理器?

但是,如果你想要上下文處理器,但不在請求/響應週期內運行?一個示例用例是呈現模板以響應電子郵件報告的信號或管理命令。在一個請求週期內不得不預先渲染任何內容(因此失去了信號提供的鬆耦合的優勢),或者不得不爲每個渲染調用手動調用上下文(如「site」),這是非常不方便的。

當沒有request實例時,是否有辦法獲取默認上下文處理器?

回答

0

好了,你可以得到什麼,他們是通過...settings.TEMPLATE_CONTEXT_PROCESSORS,但你不能使用他們,因爲你爲了做到這一點需要一個請求實例。

0

如果執行模板需要請求,發送信號

def my_view(request): 
    my_signal.send(sender=request, foo=True) 
    return HttpResponse("YadaYadaYada") 
時候爲什麼不通過,在爲 sender PARAM
相關問題