Django Middleware перенаправить бесконечный цикл - PullRequest
1 голос
/ 01 сентября 2010

У меня есть промежуточное ПО, которое проверяет значение сеанса и перенаправляет в зависимости от этого значения. Моя проблема в том, что он создает бесконечный цикл перенаправления, и я не уверен, почему.

Итак, я хочу проверить, является ли значение видимого сеанса положительным, а если нет, перенаправить пользователя в мое тестовое представление.

Вот мое промежуточное ПО:

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 голосов
/ 01 сентября 2010

Вы должны по крайней мере избегать его запуска при обслуживании некоторых медиа-файлов:

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 -метода !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...