Django错误 - 使用参数'()'和关键字参数反转'password_reset_confirm'

时间:2015-10-18 06:59:32

标签: python django django-authentication

我正在尝试在我的应用程序中创建重置密码功能,并在urls.py中添加以下行。

urls.py

url(r'^resetpassword/passwordsent/$', 'django.contrib.auth.views.password_reset_done', name='password_reset_done'),
    url(r'^resetpassword/$', 'django.contrib.auth.views.password_reset'),
    url(r'^reset/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),
    url(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'),

但是当我在重置密码上输入我的电子邮件ID时,它显示的错误是我无法理解的。 Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '我已经完成了一些建议,但没有任何建议。任何人都可以帮我解决这个错误吗?

见下图:

enter image description here

1 个答案:

答案 0 :(得分:4)

Django需要知道如何从url模板标记中使用的名称解析URL。您应该将名称添加到此行:

 url(r'^reset/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),

所以它变成了:

 url(r'^reset/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', name='password_reset_confirm'),

在此处查看有关反向分辨率的更多信息:

https://docs.djangoproject.com/en/1.8/topics/http/urls/#reverse-resolution-of-urls