2011-10-02 44 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
相关问题