首页 > 解决方案 > Django 内联表单集

问题描述

我有一个使用内联表单集的父表单和几个子表单。它工作正常。

根据父表单中的值,我需要检查是否提交了正确数量的子表单。

我知道我可以在覆盖 BaseInlineFormSet 时使用 self.instance.FOO 访问父表单,并且这又可以正常工作,但是我无法找到一种方法来确定已提交了多少实际表单并在其中至关重要地包含数据。

有谁知道怎么做?

非常感谢

标签: djangoinline-formset

解决方案


在 formsetclean方法中,self.cleaned_data将是一个字典列表 - 每个表单一个。所以你可以这样做:

class MyInlineFormSet(formsets.InlineFormSet):
    def clean(self):
        if len(self.cleaned_data) != self.instance.my_value:
            raise forms.ValidationError('wrong number of forms')

推荐阅读