Django - 身份验证 - 重定向

问题描述 投票:0回答:3

我正在使用 Django 标准身份验证。 / 登录在我的 /urls.py 中具有以下位置。

(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 /我的/ 。

我怎样才能实现这个目标?

我尝试添加以下行:

(r'^$', 'myapp.project_management.views.projects'),
(r'^$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }),

但是这会导致以下错误消息:“此网页有重定向循环”

--解决方案--

urls.py:

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

设置.py

LOGIN_URL = '/login'
django
3个回答
4
投票

请勿将主页 URL 指向登录页面。相反,请根据需要使用

login_required
装饰器 将未登录的用户重定向到登录页面。


0
投票

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


0
投票

AUTH_USER_MODEL = 'custom_user.CustomUser' 使用您的应用程序名称而不是 custom_user 并在您的设置 .py 中进行设置

© www.soinside.com 2019 - 2024. All rights reserved.