【Django】--ModelForm组件
ModelForm
a.class Meta: model,
#对应Model的
fields=None,
#字段
exclude=None,
#排除字段
labels=None,
#提示信息
help_texts = None,
#帮助提示信息
widgets = None,
#自定义插件
error_messages = None,
#自定义错误信息(整体错误信息from django.core.exceptions import NON_Field_ERRORS)
field_classes = None,
#自定义字段类(也可以自定义字段)
localized_fields = ("birth_date",)
#本地化,如:根据不同时区显示数据
如:
数据库中
2016-12-29 10:41:51
setting中的配置
TIME_ZONE = "Asia/Shanghai"
USE_TZ = True
则显示:
2016-12-29 18:41:51 (东八区时间)
b.验证执行过程
is_valid --> full_clean -->钩子 -->整体错误
c.字典字段验证
def clean_字段名(self):
#可以抛出异常
#from django.core.exceptions import ValidationError
return "新值"
d.用于验证
model_form_obj = XXOOModelForm()
model_form_obj.is_valid()
model_form_obj.errors.as_json()
model_form_obj.clean()
model_form_obj.cleaned_data
e.用于创建
model_form_obj = XXOOModelForm(request.POST)
####页面显示,并提交####
#默认保存多对多
obj = form.save(commit = True)
#不做任何操作,内部定义 save_m2m(用于保存多对多)
obj = form.save(commit=False)
obj.save() #保存单表信息
obj.save_m2m() #保存关联多对多信息
f.用于更新和初始化
obj = model.tb.objects.get(id=1)
model_form_obj = XXOOModelForm(initial={...})
人生短短数十载,经不起几次重头再来