对于登录,我通常使用内置视图:
(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'
答案 0 :(得分:1)
这个solution in my edit毕竟有效。
我导入了错误的命名空间,而不是
from django.contrib.auth.views import login
我导入了:
from django.contrib.auth import login
我希望这有助于其他人。