Django formset return 个空实例

Django formset return empty instances

我有一个继承自 BaseInlineFormSet 的 class,我在其中覆盖了 save() 方法:

class CustomBaseModelFormSet(BaseInlineFormSet):
    def save(self, something=None, commit=True, *args, **kwargs):
        instances = super(CustomBaseModelFormSet, self).save(commit=False)

但是当我调用 formset.save() 来创建具有绑定且有效的表单集的新对象时,变量实例是一个空列表!

为什么父 class 的 save() 没有保存?没有任何错误的痕迹。

我正在使用 Python 3 和 Django 1.10.5。

事实证明,在 BaseModelFormSet class 中,由于以下检查,有一个 save_new_objects() 方法跳过了我要保存的表单:

if not form.has_changed():
    continue

所以,在我的 ModelForm 中,我重写了这个方法:

def has_changed(self):
    return True

这样它总是 return 是的,我的表格被保存了。