1

セッション値をチェックし、その値に応じてリダイレクトするミドルウェアがあります。私の問題は、無限のリダイレクト ループが作成されており、その理由がわかりません。

したがって、私がやりたいことは、表示されているセッションの値が 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"))
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-methodを使用しているようです!

于 2010-08-31T23:10:07.540 に答える