class StaffModelForm(forms.ModelForm): """ 员工信息ModelForm """ class Meta: model = models.StaffInfo fields = ["POST", "NAME", "BIRTH", "SEX", "HEIGHT", "ORIGIN", "NATION","TEL","RES_ID","SCHOOL","MAJOR","EDU_LEVEL", "REGISTERED_PLACE","WECHAT","ADDRESS","EMAIL","MARRIAGE"]怎么在这段modelform中添加数据验证,比如说对EMAIL要求必须包涵@和.com项
时间: 2023-07-12 16:52:48 浏览: 38
你可以在`StaffModelForm`中对`EMAIL`字段进行自定义验证,例如:
```python
class StaffModelForm(forms.ModelForm):
""" 员工信息ModelForm """
class Meta:
model = models.StaffInfo
fields = ["POST", "NAME", "BIRTH", "SEX", "HEIGHT", "ORIGIN",
"NATION","TEL","RES_ID","SCHOOL","MAJOR","EDU_LEVEL",
"REGISTERED_PLACE","WECHAT","ADDRESS","EMAIL","MARRIAGE"]
def clean_email(self):
email = self.cleaned_data.get("EMAIL")
if "@" not in email or ".com" not in email:
raise forms.ValidationError("邮箱格式不正确")
return email
```
在这个例子中,我们定义了一个名为`clean_email`的方法来对`EMAIL`字段进行验证。通过`cleaned_data`方法获取到的`email`数据,我们可以进行自定义的验证,如果验证不通过,我们可以使用`ValidationError`来抛出错误信息。当`clean_email`方法中的所有验证都通过后,我们将会返回验证通过的`email`数据。这样,当表单提交时,如果`EMAIL`字段的格式不正确,将会抛出错误信息,而不会进行提交。