django模型formset仅更新

时间:2016-12-19 00:15:33

标签: django forms

我想使用ModelFormset来更新表数据。图片上的每一行包含一个包含两个字段的表单,以及一个表单所需的字段。

enter image description here

我不想使用空表单来创建新对象,只能将其从模板中的渲染中删除,并且子类save方法只保存带有来自queryset的初始数据的表单:

class MyFormSet(BaseModelFormSet):

def save(self, commit=True):
    if not commit:
        self.saved_forms = []
    return self.save_existing_objects(commit)

但仍需要验证空表单,并且我在必填字段上收到验证错误。

如何禁用“新对象”表单的使用/验证?

1 个答案:

答案 0 :(得分:0)

使用extra参数

显示的空表单数由extra参数控制。默认情况下,formset_factory()定义一个额外的表单;以下示例将不显示空白表单:

  modelformset_factory(model, formset=MyFormSet, extra=1)