【发布时间】:2011-01-17 08:06:58
【问题描述】:
如何将忘记密码功能添加到 Django 管理站点?有电子邮件/安全问题选项?有没有可用的插件/扩展?
【问题讨论】:
标签: django django-admin forgot-password
如何将忘记密码功能添加到 Django 管理站点?有电子邮件/安全问题选项?有没有可用的插件/扩展?
【问题讨论】:
标签: django django-admin forgot-password
它们都内置在 django 中。只需添加相关的 url 模式。如下。
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 模式以更改密码。
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 中。
您必须提供自己的模板。
【讨论】:
url(r'^accounts/', include('registration.urls')) 添加到您自己的 urls.py 中
实际上,从 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/ 并要求您输入 URL 在包含管理应用程序的行之前以 ^admin/ 开头 本身)。
在 Django 1.4 中发生了变化 admin_password_reset 的存在命名为 网址会导致“忘记密码?”链接出现在 密码框下的默认管理员登录页面
【讨论】: