Django:在内置视图中,如何重定向到/如果用户已经过身份验证?

时间:2013-03-20 07:32:21

标签: django django-1.5 django-login

对于登录,我通常使用内置视图:

(r'^login/$', 'django.contrib.auth.views.login'),

但是我今天注意到,如果我在成功登录后手动转到myserver.com/login,我会再次看到登录页面。

这不一致。解决这个问题的一种方法是,如果我可以在登录视图功能的顶部有这两行:

if request.user.is_authenticated():
    return HttpResponseRedirect('/')  

因此,如果用户已经过身份验证,请重定向到/.

有没有办法在使用'django.contrib.auth.views.login'登录时实现这一目标?

更新

似乎有人已经有了这个问题: Django: Redirect logged in users from login page

然而,在Django 1.5

中解决方案似乎不再有效

在自定义登录中,它会在以下位置抛出异常:

return login(request)

- >

AttributeError: 'AnonymousUser' object has no attribute 'backend'

1 个答案:

答案 0 :(得分:1)

这个solution in my edit毕竟有效。

我导入了错误的命名空间,而不是

from django.contrib.auth.views import login

我导入了:

from django.contrib.auth import login

我希望这有助于其他人。