Я разрабатываю проект django, и мои представления основаны на функциях и используют django-allauth для аутентификации. Теперь я ищу шаблон для работы во всем проекте, чтобы любой неаутентифицированный пользователь автоматически перенаправлялся на страницу входа. Альтернативный способ — добавить декоратор @login_required() к каждой функции представления, но я не вижу в этом логичного метода.
Извините, неправильный ответ, этот: stackoverflow.com/a/21123660/8439435
Этот ответ был хорошим, но с некоторыми изменениями, потому что после того, как промежуточное программное обеспечение django 1.10 немного изменилось @Benbb96






С помощью @Benbb96 я обнаружил, что решение использует специальное промежуточное ПО. Я провел некоторые исследования, потому что после Django 1.10 инициализация промежуточного программного обеспечения изменилась.
Вот мой код
from django.http import HttpResponseRedirect
from django.urls import reverse
class AuthRequiredMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
redirect_url = reverse("account_login")
if request.path == redirect_url:
return self.get_response(request)
if not request.user.is_authenticated:
return HttpResponseRedirect(redirect_url)
return self.get_response(request)
Добавил это себе в settings.py
MIDDLEWARE = [
....
'MyApp.middlewares.AuthRequiredMiddleware'
]
Также смотрите https://docs.djangoproject.com/en/3.2/topics/http/middleware/#upgrading-middleware
Вы пробовали это: stackoverflow.com/a/64636245/8439435