#python #django #python-3.7
#python #django #python-3.7
Вопрос:
Я настраиваю URL-адреса и добавляю пользовательский шаблон (переопределение registration/password_change_done.html и registration/password_change_form.html 🙂 в моем проекте, но когда я успешно меняю пароль, URL-адрес изменился правильно (http://127.0.0.1:8000/accounts/password/change/done / url), но страница успеха не отображалась, на ней по-прежнему отображается форма смены пароля. Мой код, как показано ниже:
конфигурация urls.py:
from django.conf.urls import url
from django.contrib.auth import views as auth_views
urlpatterns = [
url('password/change/',
auth_views.PasswordChangeView.as_view(),
name='password_change'),
url('password/change/done/',
auth_views.PasswordChangeDoneView.as_view(),
name='password_change_done'),
url('password/reset/',
auth_views.PasswordResetView.as_view(),
name='password_reset'),
url('password/reset/done/',
auth_views.PasswordResetDoneView.as_view(),
name='password_reset_done'),
url('password/reset/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(),
name='password_reset_confirm'),
url('password/reset/complete/',
auth_views.PasswordResetCompleteView.as_view(),
name='password_reset_complete'),
]
password_change_done.html:
{% extends "base.html" %}
{% block content %}
<div class='row'>
<div class="col-12 text-center py-5">
<h1 class='my-5 py-5'>Password successfully changed!</h1>
</div>
</div>
{% endblock %}
password_change_form.html:
{% extends "base.html" %}
{% block content %}
<div class='row'>
<div class='col-md-6 col-10 mx-auto'>
<h1>Change your Password</h1>
<form method='post' action=''>{% csrf_token %}
{{ form.as_p }}
<span style='margin-bottom: 12px;'></span>
<button type="submit" class='btn btn-block btn-info'>Save</button>
</form>
</div>
</div>
{% endblock %}
Комментарии:
1. Покажите свой views.py
2. Я использую представление по умолчанию (django / contrib / auth /views / PasswordChangeDoneView)
3. Я думаю, что проблема с самим собой. Когда я изменил urlpatterns на path для новой версии django, проблема была решена. Спасибо за помощь!