【发布时间】:2020-07-27 16:58:54
【问题描述】:
我想用RegexValidator 在我的表单中验证phone_number
我在这里找到了这个验证器,它在 model.py 中可以正常工作,但在 forms.py 中我收到了这个错误
谁能帮我?
这是我的model.py:
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
#additional
blood_type = models.CharField(max_length=2,blank=True)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
phone_number = models.CharField(validators=[phone_regex], max_length=17, blank=True)
description = models.TextField(blank=True)
case =models.CharField(max_length=30,blank=True)
def __str__(self):
return self.user.username
这是forms.py:
class UserProfileForm(forms.ModelForm):
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
class Meta():
model = UserProfile
fields = ('case', 'blood_type', 'phone_number','description')
labels = {
'description': '',
'case':'',
'blood_type':'',
'phone_number':'',
}
widgets = {
'phone_number': forms.TextInput(attrs={'placeholder':'Phone number'},validators=[phone_regex]),
'blood_type': forms.Select(choices=BLOOD_TYPES),
'case': forms.Select(choices=CASE),
'description': forms.Textarea(attrs={'class':'customtext', 'placeholder':'Please write your ilness...'}),
}
【问题讨论】:
标签: django django-models django-forms django-validation