如何为一个模型创建Django FormWizard?

问题描述:

我有许多字段的用户必须填写的Django模型。如果我为这个模型创建一个ModelForm,它将足够大一个表单。我想使用FormWizard进行分割。我认为首先可以动态创建表单,然后使用它们创建FormWizard。如何为一个模型创建Django FormWizard?

这是一个好方法还是有更好的方法?

对我来说似乎很好。

创建局部形成方法写在docs.

简而言之:

class PartialAuthorForm(ModelForm): 
    class Meta: 
     model = Author 
     fields = ('name', 'title') 

class PartialAuthorForm(ModelForm): 
    class Meta: 
     model = Author 
     exclude = ('birth_date',) 

这样的动态方法是:

def gimme_my_form(field_tuple): 
    class MyForm(ModelForm): 
     class Meta: 
      model = MyModel 
      fields = field_tuple 
    return MyForm 

最终,你也可以参数化的以这种方式建模。

+0

不,我不喜欢那样。这对我的模型并不好,至少会有4个选项卡,每个选项卡包含10个(平均)字段。 – giolekva 2009-11-08 20:58:07

+1

那有什么问题? 请指定你喜欢什么样的用法。然后我们可以想出一个适合的方法。 – Kugel 2009-11-09 02:33:13

+1

好吧,我只是意识到你想要一个动态的方式,我编辑了我的答案。 – Kugel 2009-11-09 02:37:31