我有一个中间件来检查会话值并根据该值重定向。我的问题是,它正在创建一个无限重定向循环,我不知道为什么。
所以,我想要做的是检查会话的值是否为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"))
答案 0 :(得分: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
-method!