form组件进阶_django
1、initial:页面显示初始值,(在编辑修改的时候常用)
initial中复制字典格式,所以可以使用values取出来的数据
2、choices:自动生成select单选标签以及相对应的值
widget中的choices的参数是列表中的元组格式,可以使用value_list获取:
3、attrs:给生成的标签添加属性
4、多选框
MultiplechoiceFiled()
SelectMultiple
choices是放在widget外面进行复制,与单选不一样
5、单选和多选标签无法及时刷新bug
无法动态显示数据,无法及时更新
原因:因为Form类中生成对象,数据是一开始的
改造:每次都去实时更新
6、多读多的初始化,第三张表的id的queryset转换为列表:
利用zip函数
7、单选和多选标签
checkbox:(单选和多选)
radio(互斥)
8、form组件的扩展验证三个钩子
(1)clean_字段名:对每个字段可以有额外的验证(必须有返回值),先执行正则表达式验证,然后执行clean_字段名 函数
(2)clean():整体的验证,在完成所有字段的验证之后,再执行这个函数,
常用于组合验证
(3)_post_clean():也是整体验证,和clean()类似,最后执行