Django-身份验证-重定向

Django-身份验证-重定向,django,Django,我使用的是Django标准身份验证在my/url.py中具有以下loc的登录名 (r'^$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }), 如果用户调用www.myapp.com并将登录重定向到settings.py中定义的Login_REDIRECT_URL='/pm/po/my/'(www.myapp.com/pm/po/my/),则登录工作正常 如果用户关闭浏览器选项卡,保持浏览器打开,则不会

我使用的是Django标准身份验证在my/url.py中具有以下loc的登录名

(r'^$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }),
如果用户调用www.myapp.com并将登录重定向到settings.py中定义的Login_REDIRECT_URL='/pm/po/my/'(www.myapp.com/pm/po/my/),则登录工作正常

如果用户关闭浏览器选项卡,保持浏览器打开,则不会终止会话(=用户未注销)。这也很好

但是,如果用户随后打开一个新选项卡并转到www.myapp.com,则登录视图将再次显示,同时用户已登录。在此,我希望用户已重定向到www.myapp.com/pm/po/my/

我怎样才能做到这一点

我尝试添加以下行:

(r'^$', 'myapp.project_management.views.projects'),
(r'^$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }),
但是,这会导致以下错误消息:“此网页有重定向循环”

--解决方案--

URL.py:

(r'^$', 'myapp.project_management.views.my_projects'),
(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }),
设置.py

LOGIN_URL = '/login'

不要让主页URL指向登录页面。相反,根据需要使用将未登录的用户重定向到登录页面。

实现您自己的登录url视图,如果您的用户登录(通常使用request.method='POST'),或者该用户已经授权,则进行重定向