在Django管理站点添加忘记密码功能

时间:2010-02-16 10:08:54

标签: django django-admin forgot-password

如何将忘记密码功能添加到Django管理站点?有电子邮件/安全问题选项吗?有插件/扩展吗?

2 个答案:

答案 0 :(得分:29)

它们都是在django中建造的。只需添加相关的网址格式。如下。

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

而且,哦,当你在这里时,还要添加视图和网址模式以便更改密码。

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

当然,它们列在documentation中。

您必须提供自己的模板。

答案 1 :(得分:6)

实际上,自Django 1.4以来,有一种简单的方法可以将忘记密码链接直接显示在管理员登录页面中(这听起来像是提出的确切问题):

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

  

您可以添加一些密码重置功能到管理站点   您的URLconf的行。具体来说,添加以下四种模式:

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

(假设   您已在admin /添加管理员,并要求您输入网址   在包含管理员应用程序的行之前以^ admin /开头   本身)。

     

在Django 1.4中更改名为admin_password_reset的存在   URL会导致“忘记密码?”链接出现在   密码框下的默认管理员登录页面