我们知道forms组件是用来做表单验证更准确一点说,forms组件是用来做数据库表中一行记录的验证有forms组件不同,formset是同科同时验证表中的多行记录即formset是做表单批量验证的组件。
首先要实例化formset对象对象初始化时需要提供操作表的forms表单类,参数 extra 用来显示验证几行数据将实例化的formset对象传递给前端页面,前端模板通过两层循环:第一层循环form第二层循环form中的字段。当GET请求时直接将实例化的formset对象传递给前端。当POST请求时批量验证表单,当所有数据嘟没有问题时后台数据库保存数据。
后台保存数据时有两种方式:第一种方式简洁,但是无法捕获字段唯一约束的错误;因此使用formset批量添加数据时最好使用第二中方式手动捕获唯一约束错误信息并交给formset送到前端页面显示。