方法一:
在view.py中:
# 导包
from django.core.validators import RegexValidator
class NumModelForm(forms.ModelForm):
# 对数据库中的mobile的字段进行效验
mobile = forms.CharField(
label="手机号",
validators=[RegexValidator(r'^1[3-9]\d{9}$', '手机号格式错误'), ]
)
class Meta:
model = models.PrettyNum
fields = "__all__"
方法二:
# 导包
from django.core.exceptions import ValidationError
class NumModelForm(forms.ModelForm):
class Meta:
model = models.PrettyNum
fields = "__all__"
# fields = ['mobile','level']
# exclude = ['level']
# 对mobile字段进行效验
def clean_mobile(self):
txt_mobile = self.cleaned_data["mobile"]
# 用于编辑功能,需要除开自己
exists = models.PrettyNum.objects.exclude(id=self.instance.pk).filter(mobile=txt_mobile).exists()
if exists:
raise ValidationError("手机号已存在")
# 验证通过
return txt_mobile