📌  相关文章
📜  无法导入 NAME 中的模块:django.contrhtmlib.auth.password_validation.UserAttributeSimilarityValidator.检查您的 AUTH_PASSWORD_VALIDATORS 设置. - Python (1)

📅  最后修改于: 2023-12-03 15:26:16.460000             🧑  作者: Mango

无法导入 NAME 中的模块:django.contrib.auth.password_validation.UserAttributeSimilarityValidator

这个错误通常发生在 Django 的用户身份验证系统设置不正确时。该错误表明 Django 找不到名为 UserAttributeSimilarityValidator 的模块。

为什么会出现这个错误?

这个错误出现的原因是在 Django 的用户身份验证系统中,AUTH_PASSWORD_VALIDATORS 中的某个验证器设置不正确。用户身份验证系统要求密码验证器必须包含一组可定制的验证器,以确保密码的安全性。UserAttributeSimilarityValidator 是其中的一个验证器,它用于检查密码是否太过相似于与该用户关联的属性。

当 Django 尝试导入 UserAttributeSimilarityValidator 时,如果它没有找到该模块,则会引发这个错误。

如何解决这个错误?

要解决这个错误,需要检查 Django 项目中的 settings.py 文件,并查看 AUTH_PASSWORD_VALIDATORS 字典中是否包含正确的验证器设置。

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
        'OPTIONS': {
            'min_length': 9,
        }
    },
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        'OPTIONS': {
            'user_attributes': ('username', 'email',),
        }
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

请确保 UserAttributeSimilarityValidator 模块存在并已正确导入到您的 Django 项目中。

结论

在 Django 中,当 UserAttributeSimilarityValidator 模块无法导入时,会引发此错误。要解决这个问题,您需要检查 Django 项目的 settings.py 文件中的 AUTH_PASSWORD_VALIDATORS 设置,确保设置正确并正确导入了模块。