我使用了django-registration app。一切都很顺利。用户通过电子邮件验证进行注册,但当用户登录并重定向到主页时,{%if user.is_authenticated%}等身份验证模板标记将返回false。
我在我的login.html
中有这个<input type="hidden" name="next" value="/" />
登录后,我想将用户重定向到主页和mainpage.html
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
但user.is_authenticated在这里返回false。这可能是什么问题?感谢
答案 0 :(得分:2)
请尝试使用{% if request.user.is_authenticated %}
。完全有可能用户没有被传递到视图中的上下文字典中。如果在模板中找不到对象,它将跳转到块的else部分。
答案 1 :(得分:0)
你能告诉我们处理URL'/'的视图的代码吗?我认为这是你的问题所在,而不是你使用django-registration。
此视图是否将user
置于上下文中?如果要在模板中使用它,则必须将其放入。如果要在上下文中使用request
,则需要确保传递{{1的实例作为上下文而不仅仅是标准的上下文对象。
答案 2 :(得分:0)
这对我有用。
假设main page
views.py
from django.shortcuts import render_to_response
def mainpage(request):
return render_to_response('mainpage.html')
您需要添加RequestContext以包含到用户对象。将您的观点更改为
from django.shortcuts import render_to_response
from django.template import RequestContext
def mainpage(request):
return render_to_response('mainpage.html', context_instance=RequestContext(request))