上記の質問として、私は登録プロセス中にパスワードを検証するためにある特別なルールを使用しようとします。 少なくとも1桁の数字、1文字、1文字の特殊文字がある場合は、パスワードの検証が必要です。django auth password validatorsの横にあるカスタムパスワードバリデータを使用するにはどうすればよいですか?
この問題を解決する私のアプローチ私はvalidators.pyという名前のファイルを作成しました。
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.'))
マイカスタム登録フォームは次のようになります。
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',)
私は私のカスタムパスワードバリデータはジャンゴAUTH_PASSWORD_VALIDATORS横に使用する必要がありますことを、私はジャンゴを教えてどのようにそれを得ることはありません。
質問が不明です。あなたはカスタムのパスワードバリデーターを使いたいのですが、settings.pyで 'AUTH_PASSWORD_VALIDATORS'を変更したくないのですか?それは? – e4c5
私はAUTH_PASSWORD_VALIDATORSを変更したくありません。私は自分自身を作成し、他の人の横に追加するだけです。 – Texas
そのステートメントは「p – e4c5