gpt4 book ai didi

python - django 中间件导致的重定向循环

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:58 25 4
gpt4 key购买 nike

我试图在注册后立即将用户重定向到协议(protocol)条款页面。

这是我的中间件类:

class TermsMiddleware(object):

def process_request(self, request):
if request.user.profile.filled_terms is None:
return redirect(reverse('terms'))

我收到以下错误,我可以通过快速浏览我的服务器来确认:

This webpage has a redirect loop

我有一个带有 filled_terms 字段的 Profile 模型类。

我有一个术语模板,当我手动访问它时它工作正常。

这也是我的 url 匹配器:

url(r'^terms/', 'hana.views.terms', name='terms')

我怎样才能摆脱这个重定向循环,让注册用户通过中间件重定向到协议(protocol)条款页面?

最佳答案

好吧,对条款页面的请求也会被处理,如果 filled_termsNone,它会重定向到条款页面,这...那是你的循环。

如果当前请求是针对重定向页面的路径,那么一种解决方法是检查中间件:

class TermsMiddleware(object):

def process_request(self, request):
if request.user.profile.filled_terms is None:
if not request.path == reverse('terms'):
return redirect(reverse('terms'))

如果请求不是针对重定向页面的请求,那么您只执行重定向。

关于python - django 中间件导致的重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30993040/

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