Form(baseform,DeclarativeFieldsMetaclass)
参数和方法
参数:
data:代表将数据绑定到对应的表单字段
auto_id: 默认值为id_%s,以字符串格式化表示,若设置html元素控件的id属性,比如表单字段job,则元素空间id为id_job,%s代表表单字段的名称
prefix:默认为none,以字符串表示,设置表单的控件属性,name和id的属性值,如果一个网页使用多个相同表填单,name设置该属性可以区分多个表单
initial:dict形式参数,默认为none,设置表单实例化过程中的初始值
label_suffix: 默认为“:”
field_order: 生成html顺序,默认为自定义字段顺序,若自定义排序则需要把每个表单字段按照先后顺序放入列表
use_required_attrtbute:默认为True 或者None,表示所有字段必须不能为空
方法:
errors():异常信息
is_valid():严重表单是不是存在异常
as_table();as_ul();as_p()
has_changed():用于对比提交的表单与初始化的表单是够发生变化
fields
CharField:文本框,max_length和min_length分别设置
IntegerField:数值框。max_value and min_value
FloatField:数值框,继承IntegerField,验证是够为小数
DecimalField:数值框,继承IntegerField,验证数值是否设置有小数点,max_digits设置最大位数,decimal_places设置小数点最大位数
DateField:文本框,具有验证日期格式的功能,input_formats设置日期格式
TimeField:文本框,验证数据是否为datetime.time或特定时间格式字符串
DateTimeField:文本框,验证数据是够为datetime.datetime datetime.date 或特定日期时间字符串
DurationField:文本框,验证数据是否为一个有效的时间段
RegexField:文本框,继承CharField,验证数据是否与某个正则表达式匹配,参数regex为正则表达式
EmailField:文本框,继承CharField,验证是否为email
FileField:文件上传框,参数max_length 设置上传文件名最大长度, 参数allow_empty_file设置是否允许文件内容为空
ImageField:图片文件上传控件,继承FileField,验证文件是否为Pillow库可识别的图像格式
FilePathField:文件选择控件,在特定的目录选择文件,参数path是必须参数,参数值为目录绝对路径;其他参数为可选参数
URLField:文本框,继承CharField,验证数据是否为有效的路由抵制
BooleanField:复选框,设有true和false,如果required=True,复选框默认为True
NullBooleanField:复选框,设有none true 和false三个选选项
ChoiceField:下拉框,参数choices以元组形式表示,用于设置下拉框的选项列表;
TypedChoiceField:下拉框,继承ChoiceField,参数coerce代表强制转化数据类型,参数empty_value表示空值,默认为空字符串
MultipleChoiceField:下拉框,继承ChoiceField,验证数据是否在下拉框列表
TypedMultipleChoiceField:下拉框,继承MultipleChoiceField,验证数据是否在下拉框列表可强制转化数据类型,参数coerce代表强制转换数据类型,参数empty_value表示空值,默认为空字符串
ComboField:文本框,为表达字段设置验证功能,比如字段类型为CharField为该字段添加emailField,使其拥有邮箱验证功能
MultiValueField:文本框,将多个表单字段合并成一个新的字段
SplitDateTimeField:文本框,继承自MultiValueField,严重数据是否为datetime.datetime或特定日期时间格式的字符串
GenericIPAddressField:文本框,继承自CharField,严重数据是否为有效的IP地址
SlugField:文本框,严重数据是否只有字母,数字下划线和连字符组成
UUIDField:继承CharField,严重数据是不为UUID格式
Field的参数
widget:设置html控件的样式
文本框类型
- TextInput:对应CharField,文本框内容设置为文本格式
- NumberInput:对应IntegerField字段,文本框只能输入数值
- EmaiInput:对应EmailField,验证输入值是否为邮箱地址格式
- URLInput:对应URLField,判断输入值是否为路由格式
- PasswordInput:对对应CharField,默认显示”*“
- HiddenInput:CharField,隐藏文本框
- DateInput:对应DateField,输入值是否为日期格式
- DateTimeInput:对应DateTimeField,是否为日期时间类型
- TimeInput: 对应TimeField,是否为时间类型
- Textarea:对应CharField,将文本框设置为textarea类型
下拉和复选框类型
- CheckBoxInput:对应BooleanField字段,设置复选框,选项为true或者false
- Select:对应ChoiceField字段,设置下拉框
- NullBooleanSelect:对应NullBooleanField,设置复选框,选项为None True False
- SelectMultiple:对应choicefield字段,与select类似,允许选择多个值
- RadioSelect:对应ChoiceField字段,单选按钮
- CheckboxSelectMultiple:对应ChoiceField,与selectmultiple类似,设置为复选框列表
上传文件类型:
- FileInput:对FileField或者ImageField字段
- ClearableFileInput:对FileField或者ImageField字段,但是多了复选框,允许上多个文件或者图片
- MultipleHiddenInput:隐藏一个或多个html控件
- SplitDateTimeWidget:组合使用DateInput和TimeInput
- SplitHiddenDateTimeWidget:与MultipleHiddenInput类似,你懂得
- SelectDateWidget:组合使用三个Select,分别生成年月日下拉框
required:输入的数据是否为空,默认值为true
label
initial:设置字段的初始值
help_text:设置帮助提示信息
error_messages:设置错误信息,以字典形式表示,比如{
"required":"不能为空",”invalid“:”格式错误“
}
validators:自定义数据验证规则,以列表格式表示,列表元素为函数名
disabled:true或false, 控件是否可以编辑
label_suffix:label的后缀