表单与模型
表单类Form 继承父类BaseForm和元类DeclarativeFieldMetaclass,大部分的属性和方法由baseForm定义,主要有:
*data 字典形式的数据,键名为表单字段
*auto_id 默认值为id_%s,以字符串格式化表示,若设置元素控件的id为job,控件属性就为id_job
*prefix 默认为none 设置表单控件的name和id属性
*initial 默认为none 以字典形式 在表单实例化过程中设置初始化值
*label_suffix 默认为冒号
*field_order 默认为none 以表单字段定义的先后进行排序
*use_required_attribute 默认为none 为表单字段的控件设置requi属性
*error() 验证表单数据是否异常
*is_valid() 验证表单数据是否异常
*as_table() 将表单字段以<table标签生成表单
*as_ul() 将表单字段以<ul标签生成表单
*as_p() 将表单字段以<p生成表单
*has_changed() 对比提交的表单数据与初始化数据是否改变
表单类都不同类型的字段都有共同的参数:
*required 输入是否为空 默认为true
*widget 设置控件样式
*label 生成label标签的类容
*initial 生成字段初始值
*help_text 设置提示信息
*error_messages 设置错误信息
*show_hidden_initial 是否在控件前加一个隐藏且具有默认值的控件
*validators 自定义验证规则
*localize 设置本地化
*disabled 控件是否可以编辑
*label_suffix 设置label的后缀内容
模型表单类ModelForm是基于Form生成的,该类继承父类BaseModelForm和底类BaseForm的属性和方法,其中BaseModelForm类的属性和方法主要有:
*instance 将模型查询的数据传入模型表单,作为初始化数据
*clean() 重写父类BaseForm的方法,将_validate_unique设为true
*validate_unique() 验证表单数据是否异常
*_save_m2m() 将带有多对多关系的模型保存到数据库
*save() 保存数据到数据库
模型表单类只提供了数据保存方法,并没有提供数据交互。数据交互由函数modelform_factory实现,该函数定义了九个属性: