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

PasswordResetCompleteView

Класс PasswordResetCompleteView применяется для отображения страницы, которая информирует пользователя об успешном изменении пароля после перехода по ссылке из письма. Он наследуется от встроенного класса TemplateView и автоматически использует шаблон registration/password_reset_complete.html, если не указан другой. После завершения сброса пользователь может перейти на страницу входа или на любой другой URL, заданный с помощью атрибута next_page.

Синтаксис

from django.contrib.auth.views import PasswordResetCompleteView # Базовое использование в urls.py path('reset/complete/', PasswordResetCompleteView.as_view(), name='password_reset_complete')

Атрибуты

Класс PasswordResetCompleteView имеет следующие основные атрибуты для настройки:

  • template_name - имя шаблона, который будет отображаться. По умолчанию registration/password_reset_complete.html.
  • next_page - URL или именованный путь для перенаправления после успешного сброса пароля. Если не задан, пользователь останется на странице завершения.
  • success_url_allowed_hosts - список разрешённых хостов для перенаправления.

Пример

Рассмотрим базовую настройку маршрутов для сброса пароля с использованием PasswordResetCompleteView в файле urls.py:

from django.urls import path from django.contrib.auth import views as auth_views urlpatterns = [ path('password-reset/', auth_views.PasswordResetView.as_view(), name='password_reset'), path('password-reset/done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'), path('reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'), path('reset/complete/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'), ]

Теперь при переходе по URL /reset/complete/ будет отображаться стандартная страница Django с сообщением об успешной смене пароля.

Пример

Изменим стандартный шаблон и укажем перенаправление на страницу входа после успешного сброса пароля:

from django.contrib.auth.views import PasswordResetCompleteView from django.urls import path urlpatterns = [ path('reset/complete/', PasswordResetCompleteView.as_view( template_name='custom/password_reset_success.html', next_page='login' ), name='password_reset_complete'), ]

После успешного завершения сброса пользователь будет автоматически перенаправлен на страницу входа, а не на страницу с шаблоном.

Пример

Создадим собственный класс для дополнительной логики, например, отправки уведомления администратору или логирования события:

from django.contrib.auth.views import PasswordResetCompleteView from django.shortcuts import redirect from django.urls import reverse class CustomPasswordResetCompleteView(PasswordResetCompleteView): template_name = 'custom/password_reset_complete.html' def get(self, request, *args, **kwargs): # Дополнительная логика print("Password reset completed for user") return super().get(request, *args, **kwargs) def get_success_url(self): return reverse('profile')

В этом примере мы переопределили метод get для выполнения пользовательского кода и метод get_success_url для указания URL перенаправления после завершения.

Пример

Рассмотрим шаблон registration/password_reset_complete.html, который используется по умолчанию. Вы можете создать свой файл с кастомным дизайном:

{% extends "base.html" %} {% block content %} <h2>Password reset complete</h2> <p>Your password has been set. You can now log in.</p> <a href="{% url 'login' %}">Log in</a> {% endblock %}

Этот шаблон будет отображаться после завершения процесса сброса пароля, если вы используете стандартное имя шаблона.

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

  • класс PasswordResetView,
    который отвечает за отображение формы для ввода email и отправку письма со ссылкой для сброса
  • класс PasswordResetConfirmView,
    который обрабатывает переход по ссылке из письма и отображение формы ввода нового пароля
  • класс PasswordResetDoneView,
    который показывает страницу после отправки письма со ссылкой для сброса пароля
  • класс LoginView,
    который используется для аутентификации пользователя и входа в систему
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить