我正在使用AbstractUser模型創建自定義驗證模型。覆蓋AbstractUser模型的默認django用戶名驗證器
的問題是,我無法覆蓋的用戶名字段的默認表單字段驗證,這裏是我迄今爲止嘗試:
class RegularUserForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(RegularUserForm, self).__init__(*args, **kwargs)
self.fields['username'].help_text = None
self.fields['username'].default_validators = []
self.fields['username'].validators = []
不知道如何做到這一點,重寫help_text成功,我也嘗試使用[None]
而不是[]
和self.fields['username'].validators = [validate_username]
其中validate_username是我創建的自定義驗證程序。
這裏的表單代碼,例如:
class RegularUserForm(forms.ModelForm):
username = forms.CharField(max_length=30, validators=[validate_username])
email1 = forms.EmailField(required=True, label='')
class Meta:
model = RegularUser
fields = ['username', 'password', 'email', 'email1', 'gender', ]
widgets = {'password': forms.PasswordInput(attrs={'placeholder': 'enter password'}),
'email': forms.EmailInput(attrs={'placeholder': 'enter email'})
}
def clean(self):
cleaned_data = super(RegularUserForm, self).clean()
email = self.cleaned_data.get('email')
email1 = self.cleaned_data.get('email1')
if email != email1:
self.add_error("email1", 'emails do not match')
return cleaned_data
任何幫助表示讚賞!
utils是我創建的庫,其中包含我的項目的自定義過濾器和驗證程序。 – HassenPy