2013-03-20 50 views
0

对于登录我通常使用内置的观点:Django:在内置视图中,如何重定向到/如果用户已经过身份验证?

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

但是今天我注意到,如果我手动去myserver.com/login已经成功登录后,我可以再次看到登录页面。

这不一致。解决的方法之一,就是如果我能对登录查看功能的顶部两行:

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

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

有没有办法实现这一点,同时仍然使用'django.contrib.auth.views.login'登录?

UPDATE:

好像有人有这个问题已经: Django: Redirect logged in users from login page

但是该解决方案似乎没有任何更长的时间来工作,在Django 1.5

在自定义登录它抛出以下例外:

return login(request) 

- >

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

我的个人意见 - 不要这样做。如果用户想要进入登录页面,他应该看到登录页面,无论他是否已经登录。 – matino 2013-03-20 08:07:37

+0

https://django-document-korean.readthedocs.org/en/latest/topics/auth.html#django.contrib.auth.decorators.login_required – catherine 2013-03-20 08:20:18

+0

[Django:从登录页面重定向登录用户]的可能重复( http://stackoverflow.com/questions/2320581/django-redirect-logged-in-users-from-login-page) – laffuste 2014-05-04 12:54:20

回答

1

这个solution in my edit毕竟工作。

我已经进口了错误的命名空间,而不是

from django.contrib.auth.views import login 

我已经进口了:

from django.contrib.auth import login 

我希望这可以帮助别人。

相关问题