Django formset返回空实例

时间:2017-04-18 17:24:06

标签: python django django-forms formset inline-formset

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

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

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

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

我正在使用Python 3和Django 1.10.5。

1 个答案:

答案 0 :(得分:0)

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

def has_changed(self):
    return True

所以,在我的ModelForm中,我覆盖了这个方法:

using NHibernate.Linq;

...

var query = SessionFactory.Current.Query<Package>();

这样它总是返回True并保存我的表格。