Django中的密码重置没有反向匹配错误?

时间:2014-03-24 17:35:20

标签: django django-forms django-templates django-urls django-email

我见过several posts并尝试了解决此问题的所有解决方案。但我仍然有以下错误。我正在使用Django 1.6

NoReverseMatch at /accounts/password/reset/Mw/3q6-5e4aba3a21e3b697aca2/
Reverse for 'password_reset_complete' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Request Method: GET
Request URL:    http://127.0.0.1:8000/accounts/password/reset/Mw/3q6-5e4aba3a21e3b697aca2/
Django Version: 1.6.2
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'password_reset_complete' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

我尝试了两种不同的URLconfs,两者都没有帮助。这是我试过的。

from django.conf.urls import include
from django.conf.urls import patterns
from django.conf.urls import url

from django.contrib.auth import views as auth_views
from django.core.urlresolvers import reverse_lazy


# urlpatterns = patterns('',
#                        url(r'^login/$',
#                            auth_views.login,
#                            {'template_name': 'registration/login.html'},
#                            name='auth_login'),
#                        url(r'^logout/$',
#                            auth_views.logout,
#                            {'template_name': 'registration/logout.html'},
#                            name='auth_logout'),
#                        url(r'^password/change/$',
#                            auth_views.password_change,
#                            {'post_change_redirect': reverse_lazy('auth_password_change_done')},
#                            name='auth_password_change'),
#                        url(r'^password/change/done/$',
#                            auth_views.password_change_done,
#                            name='auth_password_change_done'),
#                        url(r'^password/reset/$',
#                            auth_views.password_reset,
#                            {'post_reset_redirect': reverse_lazy('auth_password_reset_done')},
#                            name='auth_password_reset'),
#                        url(r'^password/reset/confirm/$', 
#              'django.contrib.auth.views.password_reset_confirm',
#              name='auth_password_reset_confirm'),
# #                        url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
# #                            auth_views.password_reset_confirm,
# #                            name='auth_password_reset_confirm'),
#                        url(r'^password/reset/complete/$',
#                            auth_views.password_reset_complete,
#                            {'post_reset_redirect': reverse_lazy('auth_password_reset_complete')},
#                            name='auth_password_reset_complete'),
#                        url(r'^password/reset/done/$',
#                            auth_views.password_reset_done,
#                            name='auth_password_reset_done'),
# )
urlpatterns = patterns('',
url(r'^password/change/$',
    auth_views.password_change,
    name='auth_password_change'),
url(r'^password/change/done/$',
    auth_views.password_change_done,
    name='password_change_done'),
url(r'^password/reset/$',
    auth_views.password_reset,
    name='auth_password_reset'),
url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
    auth_views.password_reset_confirm,
    name='auth_password_reset_confirm'),
url(r'^password/reset/complete/$',
    auth_views.password_reset_complete,
    name='auth_password_reset_complete'),
url(r'^password/reset/done/$',
    auth_views.password_reset_done,
    name='password_reset_done'),
                       )

1 个答案:

答案 0 :(得分:2)

您的代码正在查找名为password_reset_complete的网址,但您的网址包含名为AUTH_password_reset_complete的视图。删除auth_,它应该可以。