РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
574 of 818 menu

Атрибут next_page

Атрибут next_page класса LogoutView используется для указания URL-адреса, на который пользователь будет перенаправлен после успешного выхода из системы. Значение атрибута задается в виде строки с относительным или абсолютным URL. Атрибут можно переопределить как в файле urls.py при регистрации маршрута, так и в настройках проекта с помощью параметра LOGOUT_REDIRECT_URL.

Синтаксис

from django.contrib.auth.views import LogoutView class CustomLogoutView(LogoutView): next_page = '/some-url/'

Либо при определении маршрута в файле urls.py:

from django.contrib.auth.views import LogoutView urlpatterns = [ path('logout/', LogoutView.as_view(next_page='/custom-url/'), name='logout'), ]

Пример . Определение атрибута в классе

Давайте создадим пользовательское представление для выхода из системы, которое перенаправляет пользователя на главную страницу после выхода:

from django.contrib.auth.views import LogoutView from django.urls import path class MyLogoutView(LogoutView): next_page = '/' # Перенаправление на главную страницу urlpatterns = [ path('logout/', MyLogoutView.as_view(), name='logout'), ]

В этом примере после выхода пользователь будет перенаправлен на URL-адрес "/". Это эквивалентно использованию параметра next_page внутри метода as_view.

Пример . Использование параметра в as_view

Переопределим атрибут непосредственно при вызове метода as_view в файле urls.py:

from django.contrib.auth.views import LogoutView from django.urls import path urlpatterns = [ path('logout/', LogoutView.as_view(next_page='/accounts/login/'), name='logout'), ]

В этом случае атрибут next_page переопределяется на "/accounts/login/". Такой подход удобен, когда требуется гибко настраивать маршруты без создания отдельного класса.

Пример . С настройками проекта

Значение атрибута можно задать глобально в файле настроек с помощью параметра LOGOUT_REDIRECT_URL:

# settings.py LOGOUT_REDIRECT_URL = '/home/'
# urls.py from django.contrib.auth.views import LogoutView from django.urls import path urlpatterns = [ path('logout/', LogoutView.as_view(), name='logout'), ]

В этом случае при использовании стандартного LogoutView без явного указания next_page будет использовано значение из настроек. Если атрибут задан в нескольких местах, приоритет имеет значение, переданное в метод as_view, затем значение из класса, и только потом параметр из настроек.

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

  • класс LogoutView,
    который реализует функциональность выхода пользователя из системы
  • атрибут next_page класса LoginView,
    который определяет перенаправление после входа в систему
  • класс LoginView,
    который реализует функциональность входа пользователя в систему
  • функция logout,
    которая выполняет выход пользователя из системы в представлениях
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить