【问题标题】:Adding forgot-password feature to Django admin site向 Django 管理站点添加忘记密码功能
【发布时间】:2011-01-17 08:06:58
【问题描述】:

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

【问题讨论】:

    标签: django django-admin forgot-password


    【解决方案1】:

    它们都内置在 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 中。

    您必须提供自己的模板。

    【讨论】:

    • 是的,它还会发送电子邮件,相关的电子邮件 ID。
    • 请注意,如果您使用的是 django-registration 应用程序,那么您只需要包含 django-registration 的 urls.py,即将url(r'^accounts/', include('registration.urls')) 添加到您自己的 urls.py 中
    【解决方案2】:

    实际上,从 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 的存在命名为 网址会导致“忘记密码?”链接出现在 密码框下的默认管理员登录页面

    【讨论】:

    • +1 谢谢斯特凡诺!这个问题是在我还在使用 Django 1.2/1.3 时被问到的 :)
    • @Viet 是这么认为的!但是,当出现更简单的新解决方案时,我什至喜欢更新旧答案!
    猜你喜欢
    • 2019-05-06
    • 2011-10-19
    • 1970-01-01
    • 2013-12-09
    • 2011-09-28
    • 1970-01-01
    • 2017-07-06
    • 2012-02-22
    • 2013-10-12
    相关资源
    最近更新 更多