我的Django项目中有一个Image模型。由于Image的类型不同,我根据每种类型创建了三个ModelForms:
class Xray(ModelForm):
#extra_field: Choice Field with specific options for Xray
class Meta:
model = Image
class Internal(ModelForm):
#extra_field: Choice Field with specific options for Internal
class Meta:
model = Image
class External(ModelForm):
#extra_field: Choice Field with specific options for External
class Meta:
model = Image
每个ModelForm都实现了一个保存逻辑。我想为每个Image类型创建一个模型formset,但是想为每种类型的Image使用正确的ModelForm。我不会使用这个formset进行编辑,因此我总是希望它是空的并且有5个表单(5个项目)。我似乎无法在django docs中找到我可以使用特定表单的formset。只有特定的formset(继承自BaseModelFormSet)
是否可以为每个model_formset使用特定的表单?
答案 0 :(得分:1)
您可以执行以下操作:
from django.forms.models import modelformset_factory
from someproject.someapp.models import Image
from someproject.someapp.forms import Internal
ImageFormSet = modelformset_factory(Image, form=Internal)
以下是modelform_factory
的文档,但未提及form
参数。但是,在其中的示例下面的“注释”中,函数委托给formset_factory
,其被记录为采用form
参数。这只是一个小文档问题,可能是创建Django分支,对文档进行更新以及创建拉取请求的一个很好的理由。