2

ユーザーが入力しなければならない多くのフィールドを持つ Django モデルがあります。このモデルに対して 1 つの ModelForm を作成すると、1 つのフォームに十分な大きさになります。FormWizardで分割したい。最初にフォームを動的に作成し、それを使用して FormWizard を作成することは可能だと思います。

これは良いアプローチですか、それとももっと良い方法がありますか?

4

1 に答える 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

最終的には、この方法でモデルをパラメーター化することもできます。

于 2009-11-08T20:46:48.053 に答える