django学习之- modelForm

 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')    # 指定哪些字段使用东八区时间,也就是本地化

 

posted @ 2017-12-27 22:30  十年如一..bj  阅读(163)  评论(0编辑  收藏  举报