【问题标题】:Adding Password Requirements to Django's Admin Interface向 Django 的管理界面添加密码要求
【发布时间】:2015-09-08 16:35:36
【问题描述】:

The "Overview" section of the "User authentication in Django" documentation 表示 Django 中的身份验证系统不提供密码强度检查。我编写了一个表单类,添加了一些基本的密码要求,例如最小字符长度。我正在尝试在 Django 的管理界面中实现它。据我所知,我需要在三个地方实现我的密码要求:

  1. 创建用户:/admin/auth/user/add/
  2. 更改用户密码:/admin/auth/user/1/password/
  3. 更改我自己的密码:/admin/password_change/

我可以通过继承 UserAdmin 并指定 add_formchange_password_form 来处理前两个:

https://github.com/django/django/blob/1.8.2/django/contrib/auth/admin.py#L58-L59

如何获得第三个(更改我自己的密码)以使用我的密码要求?代码在我上面一点:

https://github.com/django/django/blob/1.8.2/django/contrib/admin/sites.py#L314

【问题讨论】:

    标签: django django-admin django-authentication


    【解决方案1】:

    显然是通过子分类和使用你自己的AdminSite

    # my_admin.py
    class MyAdminSite(AdminSite):
        def password_change(self, request, extra_context=None):
            ...
    
     site = MyAdminSite()
    

    您可以使用AdminConfig 为 INSTALLED_APPS 设置禁用默认管理站点的自动发现(仅限 django 1.8+)

    INSTALLED_APPS = (
       'django.contrib.admin.apps.AdminConfig',
       ...
    )
    

    然后您必须手动将所需的模型注册到新的管理站点。

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 2021-03-22
      • 2011-01-17
      • 2013-04-07
      • 1970-01-01
      • 2020-01-23
      • 2019-05-06
      • 1970-01-01
      相关资源
      最近更新 更多