PasswordChangeDoneView
Класс PasswordChangeDoneView является встроенным представлением (view) Django,
которое отображает страницу подтверждения успешного изменения пароля пользователя.
Оно наследуется от TemplateView и обычно используется вместе с PasswordChangeView.
После успешной смены пароля пользователь перенаправляется на эту страницу,
где отображается сообщение об успешном изменении пароля.
Синтаксис
from django.contrib.auth.views import PasswordChangeDoneView
from django.urls import path
urlpatterns = [
path('password-change/done/', PasswordChangeDoneView.as_view(), name='password_change_done'),
]
Параметры
Класс PasswordChangeDoneView принимает следующие параметры при настройке:
-
template_name- путь к шаблону для отображения страницы. По умолчанию используется шаблон'registration/password_change_done.html'. -
extra_context- словарь с дополнительными данными, которые передаются в шаблон.
Пример
Настроим URL-маршруты для смены пароля и страницы подтверждения:
from django.contrib.auth.views import PasswordChangeView, PasswordChangeDoneView
from django.urls import path
urlpatterns = [
path('password-change/', PasswordChangeView.as_view(), name='password_change'),
path('password-change/done/', PasswordChangeDoneView.as_view(), name='password_change_done'),
]
Пример
Создадим шаблон для страницы подтверждения с именем 'registration/password_change_done.html':
{% extends "base.html" %}
{% block content %}
<h2>Пароль успешно изменен</h2>
<p>Ваш пароль был успешно изменен.</p>
<a href="{% url 'profile' %}">Вернуться в профиль</a>
{% endblock %}
Пример
Используем собственный шаблон для страницы подтверждения:
from django.contrib.auth.views import PasswordChangeDoneView
from django.urls import path
urlpatterns = [
path('password-change/done/',
PasswordChangeDoneView.as_view(
template_name='custom/password_done.html'
),
name='password_change_done'
),
]
Пример
Передаем дополнительные данные в шаблон с помощью параметра extra_context:
from django.contrib.auth.views import PasswordChangeDoneView
from django.urls import path
urlpatterns = [
path('password-change/done/',
PasswordChangeView.as_view(
extra_context={
'title': 'Пароль обновлен',
'user_info': 'Ваш пароль был успешно изменен'
}
),
name='password_change_done'
),
]
Пример
Полный пример настройки изменения пароля с использованием представлений из пакета auth:
from django.contrib.auth.views import PasswordChangeView, PasswordChangeDoneView
from django.urls import path
from django.contrib.auth import views as auth_views
urlpatterns = [
path('password-change/',
PasswordChangeView.as_view(
template_name='registration/password_change_form.html',
success_url='/password-change/done/'
),
name='password_change'
),
path('password-change/done/',
PasswordChangeDoneView.as_view(
template_name='registration/password_change_done.html'
),
name='password_change_done'
),
]
Смотрите также
-
класс
PasswordChangeView,
который отвечает за форму изменения пароля -
класс
LoginView,
который обрабатывает аутентификацию пользователя -
класс
LogoutView,
который осуществляет выход пользователя из системы -
класс
PasswordResetDoneView,
который отображает страницу успешного сброса пароля