gpt4 book ai didi

python - Django 重定向

转载 作者:太空宇宙 更新时间:2023-11-04 10:50:04 26 4
gpt4 key购买 nike

我试图让我网站上的人根据他们所属的用户组访问网站的一个完全独立的部分。这是我到目前为止编写的逻辑:

if request.user:
if request.user.groups.filter(name='A').count() >= 1:
return HttpResponseRedirect('/pageA')
elif request.user.groups.filter(name='B').count() >= 1:
return HttpResponseRedirect('/pageB')
else:
return HttpResponseRedirect('/login')

然后是网址:

url(r'', 'main.views.getIndex'),
url(r'', include('a.urls')),
url(r'', include('b.urls')),

基本上,我有 A 组和 B 组 - 如果用户属于相应的用户组,则他们可以相应地访问“A”页面和“B”页面。否则,他们必须登录(占位符拒绝页面)。

逻辑似乎有道理,但我不断收到“太多重定向”错误。事实上,该页面实际上也到达了我想要的语句,但是在返回 HttpResponseRedirect 后,它停止工作。

非常感谢您的帮助。

最佳答案

以下模式将匹配所有 url

url(r'', 'main.views.getIndex'),

因此,如果 getIndex 返回一个重定向,您将得到一个无限的重定向循环。

如果您只希望 url 模式匹配索引 url(即 /),则将其更改为:

url(r'^$', 'main.views.getIndex'),

脱字符 ^ 匹配字符串的开头,美元 $ 匹配字符串的结尾。因此 ^$ 只匹配空字符串 ''。相比之下,正则表达式 r'' 匹配所有字符串。

关于python - Django 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543096/

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