【发布时间】:2016-07-30 22:52:21
【问题描述】:
如果我制作这样的上下文处理器:
def add_external(request):
context = {"stext":"this is the info"}
return context
并将其添加到设置中:
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'website.context_processor.add_external',
],
我可以通过{{stext}} 访问模板中的变量。当我现在从这个模板中的链接跳转到同一个应用程序中的另一个视图时,我不应该能够访问这个变量:
request.stext
相反,我得到了这个错误:
'WSGIRequest' object has no attribute 'stext'
我在这里缺少什么?
【问题讨论】:
-
不,上下文处理器不会向请求对象添加属性,它们当然不会在完全不同的请求中提供数据。为什么你认为这应该有效?
-
你说得对,我试图做一些技术上完全不可能的事情。我通过使用会话中间件解决了它(尽管代码在相同的细节上看起来不同 -request.session 而不是 request -,但后台有很多事情发生)。
标签: django