这段代码是写在class StaffModelForm(forms.ModelForm):里面吗
时间: 2024-03-28 15:42:21 浏览: 117
django为Form生成的label标签添加class方式
是的,这段代码应该写在 `StaffModelForm` 类中的 `clean_tel` 方法中,如下所示:
```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_tel(self):
tel = self.cleaned_data.get('TEL')
if tel and (not tel.isdigit() or len(tel) != 13):
raise forms.ValidationError('电话号码必须是13位的数字')
return tel
```
在这个代码中,我们将 `clean_tel` 方法定义在了 `StaffModelForm` 类中,并在 `Meta` 类中指定了模型和字段列表。`clean_tel` 方法会在表单数据验证时被自动调用,用于检查 `TEL` 参数是否符合要求。如果不符合要求,就会抛出 `ValidationError` 异常,阻止表单数据的提交。
阅读全文