2016-01-22 103 views
0

不知何故,我几乎无法找到关于此的任何信息。我找到一个教程here,但它已经4岁了,似乎没有太大的帮助。我也通过了Django Documentation,但它没有给出很多示例代码。如何重置密码Django?

我已经建立了我的urls.py

from django.conf.urls import url 
from . import views 
from django.contrib.auth import views as auth_views 

urlpatterns = [ 
    url(r'^login/$', views.login_view, name='login'), 
    url(r'^password_reset/$', auth_views.password_reset, {'post_reset_redirect' : '/accounts/password_reset_done/'}, name='password_reset'), 
    url(r'^password_reset_done/$', auth_views.password_reset_done, name='password_reset_done'), 
    url(r'^password_reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', auth_views.password_reset_confirm, {'post_reset_redirect' : '/accounts/password_done/'}, name='password_reset_confirm'), 
    url(r'^password_done/$', auth_views.password_reset_complete, name='password_done'), 
    url(r'^auth/$', views.login_auth, name='login_auth'), 
    url(r'^register/$', views.register_user, name='register'), 
    url(r'^logout/$', views.logout_user, name='logout'), 
] 

从我所收集的,除非我正在使用自定义模板(我没试过,因为我无法获得包括Django的版本一起使用)那么一切都在urls.py完成。

我可以得到reset_password页面加载罚款:

但是,当我提交表单,我收到以下错误:

我只花了两个小时修复这个完全相同的问题,以获得reset_password页面加载,现在相同的问题正在发生,仅在reset_password_confirm部分。我已经看过一堆解决这个确切错误的问题,但我不知道是什么导致了这个问题。在urls.py几行的处理似乎并不像它应该是这个硬...

+0

你需要从网络上?你可以从shell'user = User.objects.get(username ='myadmin')'和'user.set_password('mynewpassword')' – harveydf

+0

我需要它从web – 123

+0

https://docs.djangoproject。 com/en/1.9/topics/auth/default /#using-the-views查找重置模式。 – karthikr

回答

2

更新与

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, {'post_reset_redirect' : '/accounts/password_done/'}, name='password_reset_confirm'), 

urls.py从日志中我可以看到,它期望uidb64

+0

更改为'uidb64'似乎没有解决问题。 – 123

+0

我更新了模式,请检查.. – Anoop

+0

我也尝试过这种模式,没有运气。 – 123

0

这就是我完全从文档中找到的东西,它的功能非常完美。

url(r'^admin/', include(admin.site.urls), name='admin'), # admin interface 
url(r'^login/', LoginView.as_view(), name='Login'), # for user login 
url(r'^logout/', LogoutView.as_view(), name='Logout'), # logout 
url(r'',include(admin.site.urls), name='admin'), # logout 
url(r'^admin/password_reset/$', auth_views.password_reset, name='admin_password_reset'), 
url(r'^admin/password_reset/done/$', auth_views.password_reset_done, name='password_reset_done'), 
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$', auth_views.password_reset_confirm, name='password_reset_confirm'), 
url(r'^reset/done/$', auth_views.password_reset_complete, name='password_reset_complete'), 

Here is the link to the docs, 希望它帮助。