Python 用户身份验证模板标记不工作Django
我使用了django注册应用程序。一切顺利。用户通过电子邮件验证注册,但当用户登录并重定向到主页时,身份验证模板标记(如{%if User.is_authenticated%})返回false 我的login.html中有这个Python 用户身份验证模板标记不工作Django,python,django,django-templates,django-views,django-authentication,Python,Django,Django Templates,Django Views,Django Authentication,我使用了django注册应用程序。一切顺利。用户通过电子邮件验证注册,但当用户登录并重定向到主页时,身份验证模板标记(如{%if User.is_authenticated%})返回false 我的login.html中有这个 <input type="hidden" name="next" value="/" /> 登录后,我想将用户重定向到主页和mainpage.html中 {% if user.is_authenticated %} <p>Welco
<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 %}
{%if user.u经过身份验证%}
欢迎,{{user.username}}。感谢您登录
{%else%}
欢迎新用户。请登录。
{%endif%}
但是user.is_authenticated在这里返回false。这里可能有什么问题?谢谢尝试使用
{%if request.user.is_authenticated%}
。完全有可能用户没有被传递到视图中的上下文字典中。如果在模板中找不到对象,它将直接跳到块的else部分。在django中,呈现模板很奇怪,因为通常情况下会出现的异常会被吞没。您能否向我们展示处理URL“/”的视图的代码?我认为这是您的问题所在,而不是使用django注册
此视图是否将
user
置于上下文中?如果你想在模板中使用它,你必须把它放进去。如果您想在上下文中使用request
,那么您需要确保将RequestContext
的实例作为上下文传递,而不仅仅是一个标准的上下文对象。以下是对我有效的方法
假设您的主页
被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))
您是否正确地传入用户对象?这可能会导致它返回为false我正在使用django.contrib.auth.login视图。我认为他们确实在上下文字典中传递了user@Nazim,你试过request.user了吗?