因此,正如e4c5所述,它确实非常简单明了。
我的CustomPasswordValidator看起来像这样:
from django.core.exceptions import ValidationErrorfrom django.utils.translation import ugettext as _class CustomPasswordValidator(): def __init__(self, min_length=1): self.min_length = min_length def validate(self, password, user=None): special_characters = "[~!@#$%^&*()_+{}":;'[]]" if not any(char.isdigit() for char in password): raise ValidationError(_('Password must contain at least %(min_length)d digit.') % {'min_length': self.min_length}) if not any(char.isalpha() for char in password): raise ValidationError(_('Password must contain at least %(min_length)d letter.') % {'min_length': self.min_length}) if not any(char in special_characters for char in password): raise ValidationError(_('Password must contain at least %(min_length)d special character.') % {'min_length': self.min_length}) def get_help_text(self): return ""
只需将其添加到settings.py中的AUTH_PASSWORD_VALIDATORS列表中就可以了!
AUTH_PASSWORD_VALIDATORS = [{ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},{ 'NAME': 'registration.validators.CustomPasswordValidator',},]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)