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 是的,我的表格被保存了。
我有一个继承自 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 是的,我的表格被保存了。