后is_anonymous都返回真我使用Django的登记,并设置好它。Django的:is_authenticated和注销
{{user.is_authenticated }}
是真的,即使我已经去/ accounts/logout /并且登出了用户。
{{user.is_anonymous }}
也返回true。根据django文档,这两个应该是不同的:
is_anonymous:总是返回False。这是区分User和AnonymousUser对象的一种方式。通常,您应该更喜欢使用is_authenticated()来使用此方法。
和
is_authenticated:总是返回true。这是判断用户是否已通过身份验证的一种方式。这并不意味着任何权限,并且不检查用户是否处于活动状态 - 它只是表明用户提供了一个有效的用户名和密码。
我正在使用django注册并没有触及它们的标准视图。在tempalate我有以下代码:
{% if user.is_authenticated %}
{% user }}
{% if user.is_anonymous %}
is anonymous
{% endif $}
{% else %}
gotta login
{% endif %}
问题在哪里?我会非常感谢!
更新: 我注意到,在主页上,它既is_authenticated和id_anonymous返回True,而如果我登录之前去/ accounts /登录,只有is_anonymous返回true,因为它应该是。而且,在网页上,我有以下的看法是否有帮助:
def home(request):
return render_jinja(request, 'index.html', blah = 'ga')
更新2: 打印(request.user.is_authenticated())提供虚假。然后,我有:
return render_jinja(request, 'index.html', blah = 'ga')
并且在模板中,user.is_authenticated返回FALSE。
更新3: 如果我选择render_to_response使用,而不是render_jinja,一切都很好。还是不知道如何解决这个问题,虽然:(
恐怕我无法在新创建的项目和应用程序中重现此行为。你使用的是哪个版本的Django?你如何登录用户,然后登录用户? – 2010-11-28 19:44:57
如果你告诉我如何检查我的django版本,我将非常乐意检查!拍摄在黑暗中 - 1.2 – mgPePe 2010-11-28 21:16:42
因为我使用这个开源的Django的注册应用程序,我登录帐户/登录/和注销帐户/注销。如果你告诉我如何在评论中粘贴代码,我可以从这些链接粘贴视图 – mgPePe 2010-11-28 21:18:15