Django rest-auth 密码重置不起作用

Django rest-auth password reset not working

我正在使用 Django 为移动应用构建 RESTful API,我使用 django rest-auth 库进行身份验证,但是当我尝试使用密码重置时出现以下错误:

NoReverseMatch at /auth/password/reset/
Reverse for 'auth_password_reset_confirm' with arguments '(b'OQ', '4nx-
6653c24101b5443f726b')' and keyword arguments '{}' not found. 0 pattern(s) 
tried: []

从我的 url 模式中给出这个片段

url(r'^', include('django.contrib.auth.urls')),
url(r'^auth/', include('rest_auth.urls')),
url(r'^auth/registration/', include('rest_auth.registration.urls')),

我尝试了此处提到的一些解决方案(如在代码段中添加第一个模式)但仍然出现相同的错误。

您没有定义 url,您可以从 rest-auth 库中查看演示项目,了解它如何处理 url(和相关模板)。

https://github.com/Tivix/django-rest-auth/blob/master/demo/demo/urls.py

试试这个: 在 Settings.py 中:确保 'app' 位于已安装应用程序的末尾

然后再试一次

这个错误意味着你还没有用这个名字 auth_password_reset_confirm 定义任何 url 所以你需要用这个名字 auth_password_reset_confirm 创建一个 url。

您需要以这种方式自定义django rest-auth

In rest-auth > urls.py

urlpatterns = [
    ....
    url(r'^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='auth_password_reset_confirm'),
    ....
]

在这种情况下,您将 name 设为 auth_password_reset_confirm。在我的例子中,我得到了这个反向 url password_reset_confirm 的错误,所以我把它作为一个名字放在 urls 中。

但在你的情况下它将是 auth_password_reset_confirm