Adding forgot-password feature to Django admin site

为君一笑 提交于 2019-12-02 16:47:53
Lakshman Prasad

They are all there built in the django. Just add the relevant url patterns. As follows.

from django.contrib.auth import views as auth_views

patterns+=('',
url(r'^passreset/$',auth_views.password_reset,name='forgot_password1'),
url(r'^passresetdone/$',auth_views.password_reset_done,name='forgot_password2'),
url(r'^passresetconfirm/(?P<uidb36>[-\w]+)/(?P<token>[-\w]+)/$',auth_views.password_reset_confirm,name='forgot_password3'),
url(r'^passresetcomplete/$',auth_views.password_reset_complete,name='forgot_password4'),
)

And, oh, while you are at it, also add the views and url patterns for password change.

url(r'^password/change/$',
   auth_views.password_change,
   name='auth_password_change'),
url(r'^password/change/done/$',
   auth_views.password_change_done,
   name='auth_password_change_done'),

They are listed in the documentation of course.

You'll have to provide your own templates.

Stefano

Actually since Django 1.4 there's an easy way to get the forgotten password link appear directly in the admin login page (which sounds like the precise question asked):

https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#adding-a-password-reset-feature

You can add a password-reset feature to the admin site by adding a few lines to your URLconf. Specifically, add these four patterns:

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

(This assumes you’ve added the admin at admin/ and requires that you put the URLs starting with ^admin/ before the line that includes the admin app itself).

Changed in Django 1.4 The presence of the admin_password_reset named URL will cause a “forgotten your password?” link to appear on the default admin log-in page under the password box

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!