Django でフォームに 2 つのモデルを使用する際に問題が発生しました。Animal と Family の 2 つのモデルがあり、どちらにも「名前」フィールドがあります。
フォームのテンプレートで 2 つのモデルフォームを使用しています。フォームが送信されると、'name' の POST データは 1 つの値のみを返します。
モデルの「名前」フィールドの名前を変更する以外に、これを回避する方法はありますか?
ご協力いただきありがとうございます。これは私の最初の投稿です。
モデルフォームを初期化するときにプレフィックス引数を利用できます。
animal_form = AnimalForm(request.POST or None, prefix="animal")
family_form = FamilyForm(request.POST or None, prefix="family")
次のような出力になります。
<input id="id_animal-name" type="text" />
<input id="id_family-name" type="text" />
request.POST.getlistを使用して、同じ名前で異なる POST 値を取得できます。
ただし、正しい値はフォーム内の入力フィールドの位置に依存し (私は推測します)、これは本当に良い考えではありません。モデルではなく、フォームクラスでフィールドの名前を変更します(使用してください)。