NoReverseMatch в reset_password_complete: Django PasswordResetConfirmView

Я использую стандартные представления и формы сброса пароля Django для отправки пользователю электронного письма, чтобы он сбросил свой пароль по ссылке в письме. Я завершил большую часть разработки, но застрял на одной проблеме. Когда я получаю письмо от локального хоста, я нажимаю на ссылку, ввожу свой новый пароль 2 раза, нажимаю 'submit' и получаю эту ошибку: Error Message.

Ниже приведен мой код. urls.py


"""defines URL patterns for users"""

from django.urls import path, include, reverse_lazy
from django.contrib.auth import views as auth_views
from . import views
app_name = 'users'

urlpatterns = [
    # include all default auth urls
    path('', include('django.contrib.auth.urls')),
    path('register/', views.register, name='register'),
    path(
        'reset_password/',
        auth_views.PasswordResetView.as_view(
            template_name='registration/password_reset.html',
            success_url=reverse_lazy('users:password_reset_done')
            ) ,
            name='reset_password'
    ),
    path(
        'reset/<uidb64>/<token>/',
        auth_views.PasswordResetConfirmView.as_view(
            template_name='registration/password_reset_form.html',
            success_url=reverse_lazy('users:password_reset_complete')
            ),
            name='password_reset_confirm'
    ),
    path(
        'password_reset_done/',
        auth_views.PasswordResetDoneView.as_view(
            template_name="registration/password_reset_sent.html"),
            name='password_reset_done'
    ),
    path(
        'password_reset_complete/',
        auth_views.PasswordResetCompleteView.as_view(
            template_name='registration/password_reset_done.html'),
            name='password_reset_complete'
    ),
    path('forgot_username/', views.forgot_username, name="forgot_username"),
    path('username_retrieval/', views.username_retrieval, name="username_retrieval"),
]

Как вы можете видеть, я использую пространство имен 'users' в переменной success_url, однако, кажется, что это работает на пути reset_password, но не работает на пути reset/<uidb64>/<token>.

Однако следует иметь в виду, что у меня есть пользовательская модель пользователя в моем приложении. Может ли это повлиять на мою способность использовать этот стандартный метод сброса пароля Django?

Кроме того, вот мои шаблоны в папке users/templates/registration/: User App Templates

Некоторые другие моменты, о которых следует упомянуть: Когда я нажимаю на ссылку из моего письма, я попадаю на password_reset_confirm, а не на password_reset_form, так что это говорит мне о том, что имя шаблона также не перезаписывается.

Когда я меняюсь success_url=reverse_lazy('users:password_reset_complete') на success_url=reverse_lazy('users:password_reset_completed') приложение не ищет users:password_reset_completed, что означает, что success_url не перезаписывается.

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

Заранее спасибо!

эта строка перезаписывает все ваши пути:

    path('', include('django.contrib.auth.urls')),

просто удалите его или, если вы хотите сохранить некоторые из них, поместите его в конец после ваших путей

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