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()类似,最后执行

  

  

原文地址:https://www.cnblogs.com/chenxiaozan/p/13392111.html