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

Класс LogoutView

Класс LogoutView применяется для обработки выхода пользователя из системы. Он очищает данные аутентификации в сессии и перенаправляет пользователя на страницу, указанную в атрибуте next_page или в GET-параметре next. По умолчанию класс доступен через встроенное представление django.contrib.auth.views.LogoutView.

Синтаксис

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

Пример

Создадим URL для выхода пользователя и укажем страницу перенаправления через атрибут next_page:

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

При переходе по адресу /logout/ пользователь будет выведен из системы и перенаправлен на главную страницу.

Пример

Используем параметр GET next для динамического перенаправления после выхода:

# urls.py from django.contrib.auth.views import LogoutView from django.urls import path urlpatterns = [ path('logout/', LogoutView.as_view(), name='logout'), ] # В шаблоне ссылка на выход с параметром next <a href="{% url 'logout' %}?next=/custom-page/">Выйти</a>

Результат выполнения кода:

"Пользователь выведен и перенаправлен на /custom-page/"

Пример

Настроим собственный шаблон для страницы выхода с подтверждением. Для этого переопределим атрибут template_name:

# urls.py from django.contrib.auth.views import LogoutView from django.urls import path urlpatterns = [ path('logout/', LogoutView.as_view(template_name='registration/logout.html'), name='logout'), ] # registration/logout.html <!DOCTYPE html> <html> <head> <title>Выход</title> </head> <body> <h1>Вы вышли из системы</h1> <a href="/">Вернуться на главную</a> </body> </html>

Результат выполнения кода:

"Отображается кастомная страница выхода"

Пример

При необходимости можно задать атрибут next_page динамически во вьюхе или через настройки. Если атрибут не задан, используется значение параметра GET next, а если и его нет - то настройка LOGOUT_REDIRECT_URL:

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

Результат выполнения кода:

"Перенаправление на /accounts/login/ после выхода"

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

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