Django中间件重定向无限循环
我有一个中间件,它会检查一个会话值,然后根据这个值进行重定向。我的问题是,它现在出现了无限重定向循环,我不知道为什么会这样。
我想做的是检查会话中的某个值是否为“yes”,如果不是,就把用户重定向到我的测试页面。
下面是我的中间件代码:
class CheckStatus(object):
def process_request(self, request):
if request.user.is_authenticated():
s = request.session.get('visible')
if str(s) is not 'yes':
return HttpResponseRedirect(reverse("myapp.myview.views.test"))
1 个回答
3
你至少应该避免在提供一些媒体文件时让它运行:
from django.conf import settings
class CheckStatus(object):
def process_request(self, request):
if request.user.is_authenticated():
if not request.path.startswith(settings.MEDIA_URL):
s = request.session.get('visible')
if str(s) is not 'yes':
return HttpResponseRedirect(reverse("myapp.myview.views.test"))
不过,更好的方法似乎是使用process_view
方法!