Django реверс для 'password_change_done' не найден

У меня есть небольшое приложение, которое я пишу, но я столкнулся с некоторыми проблемами с элементами смены пароля, используемыми в фреймворке аутентификации Django. Но я всегда получаю ошибку после смены пароля: Reverse for 'password_change_done' not found. 'password_change_done' не является допустимой функцией представления или именем шаблона. Вот мой код ниже:

#account urls.py

from django.urls import path, include
from django.contrib.auth import views as auth_views
from . import views

app_name = 'account'

urlpatterns = [
    #Password Changes URLs
    path('password_change/', auth_views.PasswordChangeView.as_view(), name='password_change'),
    path('password_change/done/', auth_views.PasswordChangeDoneView.as_view(), name='password_change_done'),

]

Вот моя структура каталогов для системы входа в систему: Структура директорий

Вот файл password_change.html:

<h3 style="text-align: center;">Change your password</h3>
<div class="login-form" style="text-align: center; ">
   <form method="post">
      {{ form.as_p }}
      <p><input type="submit" value="Change"></p>
      {% csrf_token %}
   </form>
 </div>

Любая помощь будет очень признательна!

Поскольку вы используете app_name, вам необходимо включить пространство имен в success_url из PasswordChangeView:

# account urls.py

from django.urls import path, include
from django.contrib.auth import views as auth_views
from . import views
from django.urls import reverse_lazy

app_name = 'account'

urlpatterns = [
    #Password Changes URLs
    path('password_change/', auth_views.PasswordChangeView.as_view(
        success_url=reverse_lazy('account:password_change_done')
    ), name='password_change'),
    path('password_change/done/', auth_views.PasswordChangeDoneView.as_view(), name='password_change_done'),
]

некоторые другие основанные на классах представления пакета auth имеют success_url, поэтому они также должны быть обновлены.

Вернуться на верх