Django PasswordChangeView抛出“密码与电子邮件地址太相似。”错误

时间:2019-11-22 20:57:29

标签: python django

我试图创建URL,以便用户可以更改其密码。这个错误有点奇怪,因为我的注册表格中甚至都没有电子邮件字段。在我的注册表中,我只询问用户usernamepassword。另外,我不会更改标准User模型。


如果有人需要任何代码部分来帮助我,请写下您需要的内容。我什至不知道该附加什么,因为不知道出了什么问题。

UPD 1: 感谢py_dude提供了有用的链接。我知道了。对于有相同问题的任何人,我都会留下对我有用的解决方案。

转到项目的根urls.py。然后,找到AUTH_PASSWORD_VALIDATORS列表,并用下一个值更新具有django.contrib.auth.password_validation.UserAttributeSimilarityValidator键的字典:

'OPTIONS': {
    'user_attributes': ('username', 'first_name', 'last_name')
}

此外,您只能保留用户名或任何这些字段。 要获得完整的图片,请附上我最后的内容:

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        'OPTIONS': {
            'user_attributes': ('username')
        }
    },
    ...
]

1 个答案:

答案 0 :(得分:1)

您可以在开发期间将其禁用:

https://stumbles.id.au/disabling-djangos-password-strength-checking-for-development.html

从文档中: https://docs.djangoproject.com/en/2.2/_modules/django/contrib/auth/password_validation/#UserAttributeSimilarityValidator

如果要完全禁用它,可以重新分配

DEFAULT_USER_ATTRIBUTES = ('username', 'first_name', 'last_name', 'email')UserAttributeSimilarityValidator类中