2013-02-27 85 views
0

我想知道如何最好地动态限制哪些字段是ModelForm实例的一部分。具体而言,Django动态限制表单到指定的字段

class ModelWithManyFields(models.Model): 
    many fields .... 

class FormOfSelectedModelFields(forms.ModelForm): 
    class Meta: 
     model = ModelWithManyFields 
     fields = [ a dynamic list for model fields determined by the view ] 

什么是与由一些从视图内在逻辑动态地确定的字段列表创建的FormOfSelectdModelFields()一个实例的最佳方式?

+1

通过“一些固有的逻辑”从视图中简单的情况下,你的意思是你想的ModelForm自动找出哪些字段隐藏?如果是这样,那将如何确定?根据要求?其他一些财产? – 2013-02-27 21:57:47

+0

单词的选择不当。这个想法很简单。当'View'试图获取'Form'的一个实例时,'View'将提供一个模型字段列表,这样'Form'实例--'form()' - 仅用于特定的领域。在“视图”内是确定构建并传递给模板的上下文需要哪些表单字段的逻辑。我的猜测是我的问题现在不太清楚:) – Cole 2013-02-27 22:06:36

+1

包[额外的意见](http://git.io/y8c1RQ)可以帮助你在这里。使用ModelFormSetMixin并重写'get_factory_kwargs'方法来更新所需的字段。 – Matt 2013-02-27 22:57:08

回答