Django 如何使用上下文处理器将变量传递给视图?

Django 如何使用上下文处理器将变量传递给视图?,django,django-views,Django,Django Views,我使用上下文处理器将几个变量传递给我的所有模板。但是,我也希望在呈现相应模板的实际视图中使用这些变量。我应该将它们添加到请求对象的会话对象还是请求对象本身(如果可能的话) 您难道不能获取对上下文处理器的引用并在视图中调用它吗?从我在书中读到的内容来看,上下文处理器没有什么特别之处: 上下文处理器有一个非常简单的接口:它只是一个Python函数,接受一个参数,一个HttpRequest对象,并返回一个添加到模板上下文的字典。每个上下文处理器必须返回一个字典 自定义上下文处理器可以位于代码库中的任何

我使用上下文处理器将几个变量传递给我的所有模板。但是,我也希望在呈现相应模板的实际视图中使用这些变量。我应该将它们添加到请求对象的会话对象还是请求对象本身(如果可能的话)

您难道不能获取对上下文处理器的引用并在视图中调用它吗?从我在书中读到的内容来看,上下文处理器没有什么特别之处:

上下文处理器有一个非常简单的接口:它只是一个Python函数,接受一个参数,一个HttpRequest对象,并返回一个添加到模板上下文的字典。每个上下文处理器必须返回一个字典

自定义上下文处理器可以位于代码库中的任何位置。Django所关心的是,您的模板\上下文\处理器设置指向您的自定义上下文处理器

您可以让每个视图在开始时访问它们,向其传递
请求
参数,或者创建一个装饰器,将其“注入”到您的视图中(在您的情况下,任何更简单的方法都可以)。

使用:

def my_视图(请求):
c=请求上下文(请求)
#c['key']从上下文处理器获取'key'的值。
返回render_to_response('template.html',{},context_instance=c)

您可以使用“直接到”模板,而不是“渲染到”响应。它将自动调用RequestContext。