forms.Forms
与model定义字段相似.....
forms.Modelsform
将model和form结合使用,在form中要验证的东西和models定义的字段差不多时,就可以直接使用ModelForm:
from django import forms
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['image','mobile']
#指定model是UserProfile
#部分字段放在列表中,如果是全部字段就是fields="__all__"
#对某个特殊字段进行验证:
#方法名:clean_加上字段名。这个方法没有传入参数,需要自己获取字段的数据,查找clean中该字段的值,这个数据是已经验证过一次的数据,并不是原始的数据。这个方法的返回值将替换clean_data中的现有值:self.cleaned_data['mobile'],
def clean_mobile(self):
mobile = self.cleaned_data['mobile']
REGEX_MOBILE = "^1[358]\d{9}$|^147\d{8}$|^176\d{8}$"
p = re.compile(REGEX_MOBILE)
if p.match(mobile):
return mobile
else:
raise forms.ValidationError("手机号码法",code="mobile_invali")
待补充。