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['TEL'] if valid.is_valid_tel(tel): raise ValidationError('电话号码不合法') return tel这段代码没有完成对输入的TEL的检查工作,为什么?是因为还需要把它导入哪个save函数中吗?
时间: 2023-07-19 16:48:06 浏览: 141
django为Form生成的label标签添加class方式
这段代码中的 `clean_tel` 函数并不是用来检查输入的 `TEL` 数据的完整性的,而是用来验证数据有效性的。具体来说,它会检查输入的 `TEL` 是否符合指定的格式,如果不符合则会抛出 `ValidationError` 异常。在这个 ModelForm 中,`clean_tel` 函数会在表单数据提交前被调用,用来确保表单数据中的 `TEL` 符合要求,如果不符合则会抛出异常,阻止表单数据的提交。
如果需要完成对输入的 `TEL` 的检查工作,可以考虑在 Model 的 `save` 函数中添加相应的检查代码。需要注意的是,`save` 函数一般不应该用来验证数据有效性,而是用来保存数据的。如果需要在保存数据前进行数据验证,应该使用 ModelForm 中的 `clean_*` 函数来完成。
阅读全文