コーディングを開始することを計画しているシナリオがあり、を使用することを考えていますdjango wizard
。
私の計画は、2つのステップでdjangoウィザードを構築することです。最初のステップは単純ですが、2番目のステップはもう少し複雑です。2番目のステップには、最初のステップで選択した値に基づいて形状を変更するフォームが含まれます。これは、私自身が行っていることを確認できます。私はすでに既存のすべての機能を調べましたが、それは簡単に実行できると思います。
しかし、私が直面している課題は、2番目のステップ自体にあることです。フォームとフォームセットがあります。フォームセットは1対多で作成できるため([記事]-> [画像])、2番目のステップに到達すると、ユーザーは1つ以上の画像を同じ記事にアップロードできます。
Googleのメーリングリストとstackoverflowで、フォームセットをdjangoウィザードクラスに渡すためにどこでも検索しようとしましたが、同じ手順で2つのフォームを渡すことはできないようです。
NewItemWizard.as_view([
('category', CategorySelectionForm),
('article', ArticleForm)
])
ご覧のとおり、上記のサンプルコードでは、ArticleFormとImageFormsetの両方を2番目のステップに渡すことができるようにしたいと思います。箱から出してこれを行う方法はありますか?
私が読んでいることに基づいて、get_context_dataのような関数を使用することは役立つと思いますが、それは非常にハッキーです。
def get_context_data(self, form, **kwargs):
context = super(NewItemWizard, self).get_context_data(form=form, **kwargs)
if self.steps.current == 'article':
context.update({
'image_formset': ImageFormset()
})
return context
誰でもより良いアプローチをアドバイスできますか?
乾杯、