Python 用户身份验证模板标记不工作Django

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

我使用了django注册应用程序。一切顺利。用户通过电子邮件验证注册,但当用户登录并重定向到主页时,身份验证模板标记(如{%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 %}
{%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了吗?