PasswordResetDoneView
Класс PasswordResetDoneView применяется для отображения страницы подтверждения
после того, как пользователь запросил сброс пароля. Это представление
не принимает никаких аргументов и просто отображает шаблон с
информацией о том, что на электронную почту было отправлено письмо
со ссылкой для сброса пароля. Обычно используется в связке с
PasswordResetView и PasswordResetConfirmView.
Синтаксис
from django.contrib.auth.views import PasswordResetDoneView
from django.urls import path
urlpatterns = [
path('reset/done/', PasswordResetDoneView.as_view(), name='password_reset_done'),
]
Класс наследуется от TemplateView и автоматически
использует шаблон registration/password_reset_done.html,
если не указано иное.
Параметры
Класс PasswordResetDoneView принимает следующие параметры
при настройке в URL конфигурации:
-
template_name- путь к шаблону, который будет использоваться для отображения страницы (по умолчаниюregistration/password_reset_done.html) -
extra_context- словарь с дополнительными данными, которые будут переданы в шаблон
Пример . Использование с кастомным шаблоном
Давайте настроим PasswordResetDoneView для использования
собственного шаблона:
from django.contrib.auth.views import PasswordResetDoneView
from django.urls import path
urlpatterns = [
path(
'reset/done/',
PasswordResetDoneView.as_view(
template_name='auth/reset_done.html'
),
name='password_reset_done'
),
]
Пример . С дополнительным контекстом
Передадим дополнительные данные в шаблон через параметр
extra_context:
from django.contrib.auth.views import PasswordResetDoneView
from django.urls import path
urlpatterns = [
path(
'reset/done/',
PasswordResetDoneView.as_view(
template_name='auth/custom_reset_done.html',
extra_context={
'support_email': 'support@example.com',
'company_name': 'My Company'
}
),
name='password_reset_done'
),
]
После этого в шаблоне можно использовать переменные
{{ support_email }} и {{ company_name }}.
Пример . Полный процесс сброса пароля
Рассмотрим полный пример настройки всех представлений
для сброса пароля в файле urls.py:
from django.contrib.auth.views import (
PasswordResetView,
PasswordResetDoneView,
PasswordResetConfirmView,
PasswordResetCompleteView
)
from django.urls import path
urlpatterns = [
path(
'reset/',
PasswordResetView.as_view(
email_template_name='auth/password_reset_email.html',
subject_template_name='auth/password_reset_subject.txt'
),
name='password_reset'
),
path(
'reset/done/',
PasswordResetDoneView.as_view(
template_name='auth/password_reset_done.html'
),
name='password_reset_done'
),
path(
'reset/<uidb64>/<token>/',
PasswordResetConfirmView.as_view(
template_name='auth/password_reset_confirm.html'
),
name='password_reset_confirm'
),
path(
'reset/complete/',
PasswordResetCompleteView.as_view(
template_name='auth/password_reset_complete.html'
),
name='password_reset_complete'
),
]
Пример . Шаблон для PasswordResetDoneView
Пример содержимого шаблона auth/password_reset_done.html:
{% extends 'base.html' %}
{% block title %}Письмо отправлено{% endblock %}
{% block content %}
<h2>Проверьте вашу почту</h2>
<p>
Мы отправили вам инструкции по сбросу пароля
на указанный адрес электронной почты.
</p>
<p>
Если вы не получили письмо, проверьте папку
"Спам" или попробуйте еще раз.
</p>
{% endblock %}
Смотрите также
-
класс
PasswordResetView,
который обрабатывает форму запроса на сброс пароля -
класс
PasswordResetConfirmView,
который обрабатывает подтверждение и установку нового пароля -
класс
PasswordResetCompleteView,
который отображает страницу успешного завершения сброса пароля -
класс
PasswordChangeView,
который используется для смены пароля авторизованного пользователя