Атрибут next_page

Атрибут next_page класса LoginView задаёт URL-адрес, на который будет перенаправлен пользователь после успешной аутентификации. Если атрибут не указан, то перенаправление выполняется на страницу, указанную в параметре next в POST-запросе, или на значение из настроек LOGIN_REDIRECT_URL. Атрибут позволяет явно задать маршрут для всех случаев успешного входа, переопределяя стандартную логику перенаправления.

Синтаксис

pythonfrom django.contrib.auth.views import LoginView

class CustomLoginView(LoginView):
  next_page = '/some-url/'

Пример

Настроим представление для входа, которое после успешной аутентификации всегда перенаправляет на страницу профиля:

pythonfrom django.contrib.auth.views import LoginView
from django.urls import reverse_lazy

class ProfileLoginView(LoginView):
  template_name = 'accounts/login.html'
  next_page = reverse_lazy('profile')

Пример

Используем динамическое определение URL с помощью reverse_lazy для перенаправления на главную страницу после входа:

pythonfrom django.contrib.auth.views import LoginView
from django.urls import reverse_lazy

class HomeLoginView(LoginView):
  next_page = reverse_lazy('home')

Пример

Перенаправление с использованием строкового URL без применения reverse_lazy:

pythonfrom django.contrib.auth.views import LoginView

class DashboardLoginView(LoginView):
  next_page = '/dashboard/'

Пример

Комбинируем использование атрибута next_page с параметром next в POST-запросе. Если оба заданы, приоритет имеет параметр next:

pythonfrom django.contrib.auth.views import LoginView
from django.urls import reverse_lazy

class FlexibleLoginView(LoginView):
  template_name = 'accounts/login.html'
  next_page = reverse_lazy('default_redirect')
  # При POST-запросе с next='/special/' будет
  # перенаправление на '/special/', иначе на
  # 'default_redirect'.

Смотрите также

  • атрибут template_name,
    который задаёт шаблон для страницы входа
  • класс LogoutView,
    который обрабатывает выход пользователя из системы
  • функция login,
    которая выполняет вход пользователя в систему
  • декоратор login_required,
    который ограничивает доступ к представлениям