Django-rest-auth: обратное значение для 'password_reset_confirm' не найдено. 'password_reset_confirm' не является допустимой функцией представления или именем шаблона
Я пытаюсь использовать функцию сброса пароля django-rest-auth, но после публикации запроса на /rest-auth/password/reset/
я получаю ошибку, указанную в заголовке ( Traceback), и я не понимаю, почему. Я следовал процедуре установки со страницы документации. мой urls.py
является:
from django.urls import include, path
urlpatterns = [
path('users/', include('users.urls')),
path('rest-auth/', include('rest_auth.urls')),
path('rest-auth/registration/', include('rest_auth.registration.urls')),
Я также добавил необходимые приложения в settings.py
1 ответ
Решение
Я решил, добавив
from django.urls import include, path, re_path
from rest_auth.views import PasswordResetConfirmView
re_path(r'^rest-auth/password/reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', PasswordResetConfirmView.as_view(),
name='password_reset_confirm'),
для URL в urls.py
, Таким образом, вы получите ссылку для сброса по почте: ../password/reset/confirm/uid/token
, Для завершения процедуры вы должны отправить запрос POST ../password/reset/confirm/
с этим телом:
{
"new_password1": "",
"new_password2": "",
"uid": "",
"token": ""
}
from django.views.generic import TemplateView
urlpatterns += [
path('rest-auth/', include('rest_auth.urls')),
path('rest-auth/registration/', include('rest_auth.registration.urls')),
url(r'^', include('django.contrib.auth.urls')),
url(r'^rest-auth/password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
TemplateView.as_view(template_name="password_reset_confirm.html"),
name='password_reset_confirm'),
]