1

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

(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'
4

1 回答 1

2

毕竟,我编辑中的这个解决方案有效。

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

from django.contrib.auth.views import login

我已经进口了:

from django.contrib.auth import login

我希望这对其他人有帮助。

于 2013-03-20T08:32:06.457 回答