ユーザーが入力しなければならない多くのフィールドを持つ Django モデルがあります。このモデルに対して 1 つの ModelForm を作成すると、1 つのフォームに十分な大きさになります。FormWizardで分割したい。最初にフォームを動的に作成し、それを使用して FormWizard を作成することは可能だと思います。
これは良いアプローチですか、それとももっと良い方法がありますか?
ユーザーが入力しなければならない多くのフィールドを持つ Django モデルがあります。このモデルに対して 1 つの ModelForm を作成すると、1 つのフォームに十分な大きさになります。FormWizardで分割したい。最初にフォームを動的に作成し、それを使用して FormWizard を作成することは可能だと思います。
これは良いアプローチですか、それとももっと良い方法がありますか?
私には問題ないようです。
部分的なフォームを作成する方法はドキュメントに書かれています。
要するに:
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
最終的には、この方法でモデルをパラメーター化することもできます。