我的django" password_reset_done"有问题。 当我尝试打开 accounts / reset-password 时出现此错误。 但是,如果我打开网址 accounts / reset-password / done ,则可以正常工作。
" accounts"的URLS.PY应用
from django.conf.urls import url
from django.contrib.auth.views import login , logout, password_reset,
password_reset_done
from . import views
urlpatterns = [
url(r'^register/$', views.register, name='register'),
url(r'^profile/$', views.profile, name='profile'),
url(r'^profile/prpage/(\d+)/$', views.profile, name='prpage'),
url(r'^profile-edit/$', views.profiledit, name='profile-edit'),
url(r'^login/$', login ,{'template_name':'accounts/login.html'},
name='login'),
url(r'^logout/$', views.logout_view, name='logout'),
url(r'^profile/(?P<proj_id>\d+)/$', views.userprojectpage,
name='userprojectpage'),
url(r'^changepassword/$', views.changepassword, name='changepassword'),
url(r'^reset-password/$', password_reset, name='reset_password'),
url(r'^reset-password/done/$', password_reset_done,
name='password_reset_done'),
]
请帮忙!在此先感谢)
答案 0 :(得分:1)
添加基于类的视图PasswordResetView的 success_url 参数。这将替换password_reset_done的默认路由
url(r'^reset/$',PasswordResetView.as_view(
template_name='password_reset.html',
email_template_name='password_reset_email.html',
subject_template_name='password_reset_subject.txt',
...
success_url = reverse_lazy('accounts:password_reset_done')
...
...
),name='password_reset'),
答案 1 :(得分:0)
11做了一些更改,看起来像password_reset,password_reset_done无法导入,因此显示有关此URL https://github.com/django/django/blob/stable/1.11.x/django/contrib/auth/views.py的错误。
有两种方法可以解决以上错误。
要解决此错误,请将url(r),include('django.contrib.auth.urls'))添加到项目中的主urls.py中。这将停止该错误,并将您的网址保留在您的帐户中: url(r'^ reset-password / $',password_reset,name ='reset_password'), url(r'^ reset-password / done / $',password_reset_done, name ='password_reset_done'), 我已经解决了上述错误,并且工作正常。
第二种解决错误的方法与上面的第一个选项不同,从主urls.py文件和您的url中删除url(r'',include('django.contrib.auth.urls'))。 account / urls.py添加以下URL: url(r'^ reset-password / $',password_reset, {'template_name':'reset_password.html', 'post_reset_redirect':'accounts:password_reset_done', 'email_template_name':'reset_password_email.html'}, name ='reset_password'),
url(r'^ reset-password / done / $',password_reset_done, {'template_name':'reset_password_done.html'},name ='password_reset_done'),
url(r'^重置密码/确认/(?P[0-9A-Za-z]+)-(?P.+)/$', password_reset_confirm,{'template_name':'reset_password_confirm.html', 'post_reset_redirect':'accounts:password_reset_complete'}, name ='password_reset_confirm'),
这是第二个解决方案,并且可以正常工作。
我希望能帮助您解决问题,并且对您的延迟表示歉意。我已经离开了。
DilMac