具有可变数量形式的django内联表单集

时间:2014-04-22 00:38:28

标签: django django-forms django-oscar

我正在尝试使用n个表单创建一个formset,其中n可能因用户而异。我的问题是,在django-oscar电子商务框架中工作,他们有:

BaseStockRecordFormSet = inlineformset_factory(Product, StockRecord, form=StockRecordForm, extra=1)

StockRecordFormSet(BaseStockRecordFormSet)

我遇到的问题是无法更改extra =参数。我是python的新手,但是来自c ++,所以我的直觉是找到一种模板extra = parameter的方法,但我不知道该怎么做。

此外,我尝试在 init ()中自己创建n-forms,但它不会增加total_form_count(),并且会在formset.is_valid()<上抛出错误。 / p>

这是一个link,可以更深入地了解问题。

1 个答案:

答案 0 :(得分:-1)

我通过以下方式解决了这个问题:

ResizeableBaseStockRecordFormSet = lambda num_forms:inlineformset_factory(     Product,StockRecord,form = StockRecordForm,extra = num_forms,max_num = num_forms,can_delete = False)

def stockrecordformset_factory(num_forms):     class StockRecordFormSet(ResizeableBaseStockRecordFormSet(num_forms)):

所以现在我可以动态创建额外的字段,因为我需要它们。