Django Middleware Проверка входа в систему
Я хочу ограничить все страницы для неаутентифицированных пользователей. Я написал следующее промежуточное ПО:
from django.shortcuts import redirect
def require_login(get_response):
def middleware(request):
if request.user.is_authenticated:
response = get_response(request)
return response
return redirect('/login/')
return middleware
Проблема в том, что он также перенаправляет на мою страницу входа, когда он перенаправляет на страницу входа (надеюсь, вы поняли). Поэтому он постоянно перенаправляет на мою страницу входа. Что мне нужно сделать в этом случае? Можно ли проверить, является ли запрашиваемая страница страницей Login, а затем не проверять оператор if выше. Спасибо!
Проверить request.path и если он равен вашему логину URL, то вернуть обычный ответ
from django.shortcuts import redirect
def require_login(get_response):
def middleware(request):
if request.user.is_authenticated or request.path == '/login/':
response = get_response(request)
return response
return redirect('/login/')
return middleware