0

我在使用 django 的用户帐户/登录时遇到问题。我正在尝试在登录后做一些事情,但是登录后网站显示我尚未登录。例如,在 html 标记中,如果我使用 {{ user }} 它会打印出匿名用户,即使我是未登录。我不知道我的代码有什么问题:

视图.py:

def index(request):
    return render_to response({'user', request.user})

网址.py:

(r'^$', 'tickets.views.index'),
(r'^accounts/login/$', 'django.contrib.auth.views.login' ),
(r'^accounts/logout/$','django.contrib.auth.views.logout'),

login.html 是基本的 django 登录模板,在索引上我显示了 {{ user }}。

谢谢你的帮助。

编辑:

我确实有一个模板标签,我只是没有在那里输入它。我想让它说我在登录后已经登录。例如:如果我使用帐户 test 登录,我希望测试显示 {{ user }} 不是匿名用户的位置。

4

3 回答 3

0
  1. 在您的设置中检查 SESSION_ENGINE。它可能是缓存后端,缓存可能设置为虚拟。
  2. 检查 MIDDLEWARE_CLASSES 中的 'django.contrib.sessions.middleware.SessionMiddleware。
于 2012-04-25T18:28:39.437 回答
0

我刚刚重读了你的问题。您应该在未登录时获得 AnonymousUser。

请参阅Django 文档

匿名用户是未经身份验证的用户,即他们没有提供有效的身份验证详细信息。但是,这并不一定意味着他们无权做任何事情。在最基本的层面上,大多数网站都授权匿名用户浏览网站的大部分内容,许多网站还允许匿名发表评论等。

于 2012-04-25T18:31:02.363 回答
0

你很可能想在你的模板中做这样的事情:

{% if user.is_authenticated %}
  <p>Hi logged in user!</p>
{% else %}
  <p>Please login</p>
{% endif %}

当用户尚未登录时,您将获得AnonymousUser的一个实例。is_authenticated()您可以通过调用该方法来检查它们是否经过身份验证。

于 2012-04-25T18:35:51.147 回答