0
我正在使用django_browserid
應用程序。這是我的設置文件的一部分。Django上下文處理器似乎不在非調試模式下運行
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
"django.core.context_processors.request",
'django_browserid.context_processors.browserid',
)
這一切工作正常時DEBUG = True
。在生產模式下,由於某種原因它不起作用。堆棧跟蹤的一部分:
return context['browserid_css'](**kwargs)
KeyError: 'browserid_css'
所以看起來上下文處理器沒有運行。這是我的猜測。工作和失敗的唯一區別是DEBUG=True/False
。
如果我調試的context
在調試模式下的值是你所期望的:
[{'False': False, 'None': None, 'True': True}, [{'False': False, 'None': None, 'True': True}, {u'csrf_token': ... etc
,並在生產模式:
[{'False': False, 'None': None, 'True': True}, {}]
它看起來像請求從上下文中失蹤。它看起來像是在模板加載時發生的,而不是請求的一部分,所以沒有請求上下文並不奇怪。
爲什麼BrowserId只能在調試模式下工作?