Django Ошибка сброса пароля: Путь URL должен содержать параметры 'uidb64' и 'token'
Я пытался реализовать сброс пароля с помощью электронной почты в django. Вот мои представления:
class UserPasswordResetView(PasswordResetView):
template_name = "accounts/password_reset_form.html"
email_template_name = "accounts/password_reset_email.html"
success_url = reverse_lazy("accounts:password_reset_done")
class UserPasswordResetDoneView(PasswordResetDoneView):
template_name = "accounts/password_reset_done.html"
class UserPasswordResetConfirmView(PasswordResetConfirmView):
template_name = "accounts/password_reset_confirm.html"
success_url = reverse_lazy("accounts:password_reset_complete")
class UserPasswordResetCompleteView(PasswordResetCompleteView):
template_name = "accounts/password_reset_complete.html"
urls.py:
path("reset/", UserPasswordResetView.as_view(), name="password_reset"),
path(
"reset/done/", UserPasswordResetDoneView.as_view(), name="password_reset_done"
),
path(
"confirm/<uidb64>/<token>/",
UserPasswordResetConfirmView.as_view(),
name="password_reset_confirm",
),
path(
"confirm/complete/",
UserPasswordResetConfirmView.as_view(),
name="password_reset_complete",
),
Все идет хорошо до этапа подтверждения пароля. Но после отправки формы, вместо того, чтобы показать password_reset_complete.html
, она показывает эту ошибку:
ImproperlyConfigured at /accounts/confirm/complete/
The URL path must contain 'uidb64' and 'token' parameters.
Он говорит, что не хватает этих параметров в password_reset_complete
url. Поэтому я попробовал добавить их в url:
path(
"confirm/complete/<uidb64>/<token>/",
UserPasswordResetConfirmView.as_view(),
name="password_reset_complete",
),
И он показывает эту новую ошибку:
NoReverseMatch at /accounts/confirm/MQ/set-password/
Reverse for 'password_reset_complete' with no arguments not found. 1 pattern(s) tried: ['accounts/confirm/complete/(?P<uidb64>[^/]+)/(?P<token>[^/]+)/\\Z']
Несмотря на появление этих ошибок, пароль действительно сбрасывается. Единственная проблема заключается в отображении шаблона завершения сброса пароля.