2012-04-25 124 views
0

我遇到了django的用户帐户/登录问题。我试图在登录后做一些事情,但在登录后,网站显示我还没有登录。例如,如果我使用{{user}},在html标记中,即使我是在没有登录,我不知道什么是错我的代码:Django登录/发布登录

views.py:

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

urls.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}}。

感谢您的任何帮助。

编辑:

我有一个模板标签,我只是没有输入它。我希望它说我在登录后登录。例如:如果我使用帐户测试登录,我希望测试显示{{user}}不是匿名用户。

+2

你有没有把 'django.contrib.auth', 'django.contrib.contenttypes' 在你安装的应用程序? 你这样做后是否运行'syncdb'? – RotaJota 2012-04-25 18:27:23

+0

您的'render_to_response()'调用缺少模板参数。 – 2012-04-25 18:32:45

+0

这是正确的。如果你没有登录,你实际上是'AnonymousUser' – alan 2012-04-25 18:33:33

回答

0
  1. 在您的设置中检查SESSION_ENGINE。它可能是缓存后端,并且缓存可能被设置为虚拟。
  2. 检查MIDDLEWARE_CLASSES中的'django.contrib.sessions.middleware.SessionMiddleware。
0

我刚刚重读你的问题。您未登录时将获得AnonymousUser。

请参阅the Django documentation

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

+0

这是正确的,但是当我登录时,我仍然得到anonymoususer,这是我目前遇到的问题。 – sean 2012-04-26 12:51:46

0

您很可能希望做这样的事情在你的模板:

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

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