如何为一个模型创建Django表单向导?

2 投票
1 回答
1048 浏览
提问于 2025-04-15 15:47

我有一个Django模型,这个模型有很多字段,用户必须填写。如果我为这个模型创建一个表单,那个表单会非常大,不太方便。我想用FormWizard把它分成几个部分。我想先动态创建表单,然后再用这些表单来创建FormWizard。

这样做是不是一个好方法,或者有没有更好的办法呢?

1 个回答

2

在我看来,这样做没问题。

关于创建部分表单的方法,可以在文档中找到。

简单来说:

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

最后,你也可以通过这种方式来参数化模型。

撰写回答