Wie oben erwähnt, werde ich versuchen, eine bestimmte zusätzliche Regel zu verwenden, um ein Passwort während der Registrierung zu validieren. Die zusätzliche Regel sollte sein, dass ein Passwort gültig ist, wenn es mindestens eine Ziffer, einen Buchstaben und ein Sonderzeichen hat.Wie benutze ich benutzerdefinierte Password Validatoren neben den Django Auth Passwort-Validatoren?
Mein Lösungsansatz für dieses Problem Ich habe eine Datei namens validators.py erstellt.
from django.core.exceptions import ValidationError
class CustomPasswortValidator:
def validate(value):
# check for digit
if not any(char.isdigit() for char in value):
raise ValidationError(_('Password must contain at least 1 digit.'))
# check for letter
if not any(char.isalpha() for char in value):
raise ValidationError(_('Password must contain at least 1 letter.'))
# check for special character
special_characters = "[~\[email protected]#\$%\^&\*\(\)_\+{}\":;'\[\]]"
if not any(char in special_characters for char in value):
raise ValidationError(_('Password must contain at least 1 letter.'))
Mein benutzerdefiniertes Anmeldeformular wie folgt aussieht:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class RegistrationForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=False,
help_text='Optional.')
last_name = forms.CharField(max_length=30, required=False,
help_text='Optional.')
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2',)
ich es nicht bekomme, wie ich django sagen, dass mein benutzerdefinierte Passwort-Validator Verwendung neben dem django AUTH_PASSWORD_VALIDATORS sein sollte.
Ihre Frage ist nicht klar. Sie möchten einen benutzerdefinierten Passwort-Validator verwenden, aber Sie möchten 'AUTH_PASSWORD_VALIDATORS' in settings.py nicht ändern? ist es das? – e4c5
Richtig, ich möchte AUTH_PASSWORD_VALIDATORS nicht ändern. Ich möchte mein eigenes erstellen und es neben den anderen hinzufügen. – Texas
diese Aussage löscht die Dinge nicht p – e4c5