1

我有一个中间件,它检查会话值并根据该值进行重定向。我的问题是,它正在创建一个无限重定向循环,我不知道为什么。

所以,我想要做的是检查会话可见的值是否为是,如果不是,则将用户重定向到我的测试视图。

这是我的中间件:

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"))
4

1 回答 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- 方法

于 2010-08-31T23:10:07.540 回答