Django request.user сбрасывает значение AnonymousUser после перенаправления по url
У меня есть проект Django, в котором используется базовая аутентификация (django.contrib.auth). Я использую промежуточное ПО для проверки аутентификации пользователя и перенаправления на страницу входа, если нет. Все работает как ожидалось, пока я не использую урлы сайта, подобные следующим
path("edit/<int:id>/", netinventory_views.NodeEdit, name="edit"),
path("nodes/<int:id>/", netinventory_views.NodeTest, name="test"),
Поэтому request.user сбрасывается на AnonymousUser.
middleware.py:
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect
from django.conf import settings
from django.core.cache import cache
EXEMPT_URLS = [settings.LOGIN_URL.lstrip('/')]
if hasattr(settings, 'LOGIN_EXEMPT_URLS'):
EXEMPT_URLS += [url for url in settings.LOGIN_EXEMPT_URLS]
class AuthRequiredMiddleware(MiddlewareMixin):
def process_request(self, request):
path = request.path_info.lstrip('/')
if request.user.is_authenticated:
user = request.user
cache.set('_cached_user', user)
return
else:
if path not in EXEMPT_URLS:
return redirect('login')