ModelForm(耦合很强)
可以实现
1:数据库操作
2:数据验证
使用地方:1:小型项目,2:自定制jdango admin
功能:
1:可以生成html标签:class Meta...
2:mf = xxxModelForm(instance=ModelObj)
3:额外的标签:is_rmb=Ffields.CharField(widget=Fwidgets.CheckboxInput())
4:各种验证,is_valid() ->各种钩子
5:mf.save()
或
instance = mf.save(False)
instance.save()
mf.save_m2m()
class UserInfoMF(forms.ModelForm): class Meta: model = models.Uname # 对应的model fields = ‘__all__‘ # 字段 fields = [‘..‘,‘..‘] # 指定字段名 exclude = [‘..‘] # 排除的字段名 labels = { # 提示信息 ‘name‘:‘用户名‘, ‘email‘:‘邮箱‘ } help_texts = { # 标签后的提示信息 ‘name‘:‘提示信息‘ } widgets = { # 因为Charfield默认是input标签,从这里可以自定义指定标签 ‘name‘:Fwidgets.Textarea(attrs={‘class‘:‘c1‘}) } error_messages = { # 字段错误提醒 ‘__all__‘:{整体的错误信息} ‘email‘:{ ‘required‘:‘邮箱不能为空‘,‘invalid‘:‘邮箱格式不对‘} } field_classes = { # 自定义字段类,这里是将input标签的email的字段修改为url属性 ‘email‘:Ffields.URLField } localized_fields = (‘ctime‘) # 指定哪些字段使用东八区时间,也就是本地化