Как исправить бесконечный редирект django middleware?

Всем привет.
Изначально стоит задача, закрыть весь сайт от не авторизованных пользователей.
Пробую решить это написание своего middleware, но столкнулся с бесконечным редиректом при выполнении условия.

Сам класс middleware:
class LoginRequiredMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # Code to be executed for each request before
        # the view (and later middleware) are called.

        login_path = '/account/login/'

        response = self.get_response(request)

        if not request.user.is_authenticated and request.path != login_path:
            return HttpResponseRedirect(reverse('account:user_login'))

        # Code to be executed for each request/response after
        # the view is called.

        return response


Сама вьюха:
def user_login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            user = authenticate(username=cd['username'], password=cd['password'])
            if user is not None:
                if user.is_active:
                    login(request, user)
                    return HttpResponse('Authenticated successfully')
                else:
                    return HttpResponse('Disabled account')
            else:
                return HttpResponse('Invalid login')
    else:
        form = LoginForm()
    return render(request, 'account/login.html', {'form': form})


url из account
urlpatterns = [
    path('login/', views.user_login, name='login'),
]


и urls проекта
urlpatterns = [
    path('admin/', admin.site.urls),
    path('travel/', include(('travel.urls', 'travel'), namespace='travel')),
    path('account/', include(('account.urls', 'account'), namespace='account'))
]


Сам middleware подключен последний в settings.py

Как итог: получаю бесконечный луп (302 в консоли), на морду не возвращается ничего (сайт не ответил)

Что я делаю не так и куда копать дальше?)
Заранее всем спасибо!)
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 1
@bacon
Отладка, от самого простого - добавить принты и ими вывести значения которые участвуют в условии, до использования дебаггеров, того же встроенного pdb
PS ну и такую проверку стоит делать до вызова view, а не после.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы