Django documentation描述了拥有请求实例时上下文处理器的使用 - 在呈现模板时,典型用法是使用RequestContext
而不是Context
。
但是,如果您想要上下文处理器,但不在请求/响应周期内运行,该怎么办?示例用例是呈现模板以响应用于电子邮件报告的信号或管理命令。在请求周期内预先渲染任何内容(因此失去信号提供的松散耦合的优点),或者必须为每个渲染调用手动调用上下文(例如“site”)非常不方便
当没有request
实例时,有没有办法获取默认的上下文处理器?
答案 0 :(得分:0)
好吧,你可以通过...settings.TEMPLATE_CONTEXT_PROCESSORS
获取他们 的内容,但你不能使用,因为你需要一个请求实例才能这样做
答案 1 :(得分:0)
如果渲染模板需要请求,为什么不在发送信号时将其作为sender
参数传入
def my_view(request):
my_signal.send(sender=request, foo=True)
return HttpResponse("YadaYadaYada")