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={...})
?