2

私のテンプレートでは、いくつかのフィールドに for ループを使用しました

<div class="register_div">

    <p>Title:</p>
    <p>{{ form.title }}</p>
</div>
<div class="register_div">

    <p>Upload Images :</p>
    <p>{{ form.image }}</p>
</div>

{% for item in product %}

<div class="register_div">

    <p>{{ item.Name }} <input type="text" name="custom[{{item.id}}]"/></p>

</div>

{% endfor %}


<div class="register_div">

    <p>Price:</p>
    <p>{{ form.price }}</p>
</div>

コードが示すように、そのフィールドに 3 つのレコードがある場合に for ループを使用する 1 つのフィールドがあり、フォームには 3 つのテキスト ボックスが表示されるため、ユーザーは 3 つのフィールドすべてにデータを入力できますが、データベース内のテーブルには ID の列が 1 つしかなく、 1つは彼の価値のためです。

ユーザーが3つのテキストボックスすべてを感じた場合、データベースに簡単に保存できるように、データベースにデータをフィードする方法. title 、 image 、 price の 3 つの重複エントリで可能であれば問題ありませんが、3 つの異なるアイテム名とそれに対応する値を指定する必要があります。

例えば

forループから3つのアイテム名が出てくる場合、ユーザーに表示されるのは.

title
image
item 1 ---> its vaue
item 2 ---> its vaue
item 3 ---> its vaue
price

次のようにデータベースに保存する必要があります

id  title  image   item_name    item_value   price
1    asd    a.jpg   item1           value 1      1111
2    asd    a.jpg   item2           value 2     555
3    asd    a.jpg   item3           value 3      789

または、これを行う別の効率的な方法があれば教えてください

4

1 に答える 1

1

これを行う「効率的な方法」は、モデルがこのデータと一致することを確認してから、Model FormSetsを使用することです。

なんらかの難解な理由で、データに一致するモデルを定義したくない場合は、代わりに通常のフォームセットを使用できます。

Django のフォームに慣れていない場合は、まずそれらを理解することを強くお勧めします。あなたによるこの回答には、djangoフォームに関するかなり包括的なウォークスルーがあります。

于 2012-10-11T06:30:29.177 に答える