2014-02-21 34 views
0

我在我的Django项目中有一个图像模型。因为不同类型的图像中的我已经根据每种类型创建了三个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。我不会使用这个表单进行编辑,因此我总是希望它是空的,并且有5个表单(5个项目)。我似乎无法在django文档中找到我可以使用formset的特定表单的位置。只有特定的formset(继承自BaseModelFormSet)

是否可以为每个model_formset使用特定的表单?

回答

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分支,更新文档并创建请求的一个很好的理由。

+0

是的,只是从django的源代码中读取:)...谢谢! – Apostolos

相关问题