主な質問は、私の問題を説明するために必要なものを明確にするために、多くのdjangoフォームを単一のインスタンスにバンドルする方法があるかどうかです:
単一のビューを表示するために連携する必要がある一連のフォーム クラスを作成しました。
from_form = move_forms.WaypointForm(prefix="marker-from", instance=move.from_place)
to_form = move_forms.WaypointForm(prefix="marker-to", instance=move.to_place)
#Notice that last two form are of the same class
through = ThroughFormset(prefix="through", queryset=move.waypoints_db.all())
path_form = move_forms.CarMovePathForm(path=move.path)
date_form = move_forms.MoveForm(instance=move)
#put all this into context instance and render
これらのフォームはすべて、基本的にデータベースの同じインスタンスを表示/編集します --- ただし、アプリ全体で異なる構成で再利用されます (したがって、カプセル化するクラスを手動で作成することはできません)。
Web ページに多くのフォームがあるのは面倒です。たとえば、次のようなコードを書かなければなりません。
if transportation_form.is_valid() and from_form.is_valid() and \
to_form.is_valid() and through.is_valid() and path_form.is_valid():
ほとんどの viev はこのような方法で多くのフォームを使用するため、フォーム プロパティをビューにきれいに渡すことはできません。
これらのフォームをバンドルする賢明な方法はありますか --- または私のデザインが壊れているだけですか (もしそうなら、それを修正する方法)。