使用GAE/Django-nonrel创建简单的应用程序(我认为问题不是特定于GAE或nonrel fork,最类似于PEBKAC作为python/django noob并且会发生在基本django上安装)。已验证,但user.is_authenticated保持为假
我使用django.contrib.auth进行身份验证。
在settings.py
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',)
我创建了超级用户与manage.py
我在这是在他人所用的模板base.html文件得到了以下{%“延伸的基础。 HTML”%}
{% if user.is_authenticated %}
Hello {{ user.username }}
[<a href="{% url django.contrib.auth.views.logout %}">sign out</a>]
{% else %}
[<a href="{% url django.contrib.auth.views.login %}">sign in</a>]
{% endif %}
而且在urls.py标准认证的东西(从django.contrib.auth.forms进口AuthenticationForm等)。
问题是我可以成功进行身份验证,用户名/密码检查正在工作(不能使用不正确的用户/密码),我在管理页面进行了身份验证 - 但没有在其他页面 - 或者我只是用户为空(无)。
我认为“django.contrib.auth.context_processors.auth”是使这种情况发生,但是这是在settings.py设置如上图所示的魔力。
有关如何跟踪这个问题下任何提示?
EDIT(扩大对丹尼尔斯的答案是不能做的代码中的注释格式)在views.py
我: -
def detail(request):
obj = get_object_or_404(MyModel, pk=some_id)
return render_to_response('myapp/index.html', {'MyModel': obj})
本来应该
return render_to_response('myapp/index.html', {'MyModel': obj}, RequestContent(request))
doh ...它在那里,在“注意 - 是的,请阅读这里,在这里”;) – Ryan
我也有这个问题:正确登录后,我重定向到主页,这个视图返回render_to_response(' MYAPP/shop_list.html”,{ '店':entry_list,},context_instance = RequestContext的(要求))但是,在这一点上,request.user是AnonymusUser所以当主页模板负荷,user.is_authenticated永远是假的。我错过了什么? – juankysmith
救了我,虽然链接不工作了,在这里看到:https://docs.djangoproject.com/en/1.9/ref/templates/api/#django.template.RequestContext – platzhersh