class UserForm(forms.Form):
name=forms.CharField(min_length=5,label="用户名") #CharField是类,那么name就是对象,所以这个对象对应的就是匹配规则
pwd=forms.CharField(label="密码")
email=forms.EmailField(label="邮箱")
# 自定义钩子(匹配规则)
# 用户名不能重复
def clean_name(self):
val=self.cleaned_data.get('name')
ret=UserInfo.objects.filter(name=val)
if not ret:
return val
else:
raise ValidationError("用户名已存在")
# 密码不能是纯数字
def clean_pwd(self):
val = self.cleaned_data.get('pwd')
print(type(val))
if val.isdigit():
raise ValidationError("密码不能是纯数字")
else:
return val
实例化
form=UserForm(request.POST) #request.POST是要匹配规则的数据
#实例化过程:self.fields={"name":name对象,"pwd":pwd对象,"email":email对象} 这里的对象就是forms类中定义的匹配规则
form.is_valid():#校验数据