我在这里有点傻眼,希望有人明白这个问题!
这是上下文:
{'form': <LoginForm bound=False, valid=Unknown, fields=(password;remember;login)>,
'redirect_field_name': 'next',
'redirect_field_value': None,
'signup_url': u'/accounts/signup/',
'site': <Site: brilliantactor.com>,
u'view': <allauth.account.views.LoginView object at 0x10d7dead0>}
请求对象看起来很正常
'<WSGIRequest\npath:/accounts/login/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{\'_ga\': \'GA1.1.908939259.1424705622\',\n \'csrftoken\': \'Ga0urMmd7AgBouS9KeH5V4EQNoyE8cqU\',\n [...]
但是当读取以下行时:
context = make_context(context, request)
输出上下文如下
[{'False': False, 'None': None, 'True': True},
{},
{'form': <LoginForm bound=False, valid=Unknown, fields=(password;remember;login)>,
'redirect_field_value': None,
'redirect_field_name': 'next',
'signup_url': u'/accounts/signup/',
'site': <Site: brilliantactor.com>,
u'view': <allauth.account.views.LoginView object at 0x10d7dead0>}]
由于新的上下文对象没有&#39;请求&#39;密钥,一些模板标签失败,例如的的django-allauth
这是一个失败的例子:
我的TEMPLATE_CONTEXT_PROCESSORS:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
join(BASE_DIR, 'templates'),
# insert your TEMPLATE_DIRS here
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
"allauth.account.context_processors.account",
"allauth.socialaccount.context_processors.socialaccount",
],
},
},
]
有没有人见过这个?
答案 0 :(得分:5)
对于1.8,添加
get_data
而不是
'django.template.context_processors.request',
答案 1 :(得分:2)
正如Alex暗示的那样,您需要添加request
上下文处理器;它默认没有激活。
'django.core.context_processors.request',