繁体   English   中英

如何重设密码Django?

[英]How to Reset Password Django?

不知何故我几乎找不到任何信息。 我在这里找到了一个教程,但它已有4年历史了,似乎没有太大帮助。 我也阅读了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中处理几行似乎并不难...

使用更新您的urls.py

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'),

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

这正是我从文档中得到的,并且效果很好。

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'),

这是文档的链接,希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM