gpt4 book ai didi

python - Django——有条件的登录重定向

转载 作者:太空狗 更新时间:2023-10-29 18:16:50 29 4
gpt4 key购买 nike

我正在开发一个 Django 应用程序,它将有两种类型的用户:管理员和用户。两者都是我项目中的组,根据个人登录属于哪个组,我想将它们重定向到单独的页面。现在我的 settings.py 中有这个

LOGIN_REDIRECT_URL = 'admin_list'

这会将所有登录到“admin_list”的用户重定向,但该 View 只能由 Admins 组的成员访问——否则会返回 403。至于登录 View 本身,我只使用 Django提供。我已将其添加到我的主 urls.py 文件中以使用这些 View :

url(r'^accounts/', include('django.contrib.auth.urls')),

我如何做到这一点,以便只有 Admins 组的成员被重定向到这个 View ,而其他人被重定向到不同的 View ?

最佳答案

创建一个单独的 View ,根据用户是否在管理员组中重定向用户。

from django.shortcuts import redirect

def login_success(request):
"""
Redirects users based on whether they are in the admins group
"""
if request.user.groups.filter(name="admins").exists():
# user is an admin
return redirect("admin_list")
else:
return redirect("other_view")

将 View 添加到您的 urls.py

url(r'login_success/$', views.login_success, name='login_success')

然后将其用于您的 LOGIN_REDIRECT_URL 设置。

LOGIN_REDIRECT_URL = 'login_success'

关于python - Django——有条件的登录重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824004/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com