局部钩子和全局钩子

发布时间 2023-12-19 17:44:46作者: 朱饱饱

## 局部钩子的使用
# 1 在自定义的Form类中写 clean_字段名
# 2 取出字段的真正值,name=self.cleaned_data.get('name')
# 3 判断自己的规则,如果判断失败,抛出ValidationError
# 4 如果通过,return name
# 局部钩子
def clean_name(self):
# name对应的值,如何取到?
name = self.cleaned_data.get('name')
if name.startswith('sb'):
# 不让校验通过
raise ValidationError('不能以sb开头')
else:
# 校验通过,返回name
return name
# 全局钩子
def clean(self):
# name=self.cleaned_data.get('name')
# print(name)
password = self.cleaned_data.get('password')
re_password = self.cleaned_data.get('re_password')
if password == re_password:
return self.cleaned_data
# return {'lqz':"nb"}
else:
raise ValidationError('两次密码不一致')