使用for循环时将数据输入数据库的问题

时间:2012-10-11 05:19:34

标签: django django-templates django-views django-database

在我的模板中,我使用了一些字段的循环

<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>

代码显示有一个字段使用for循环,如果该字段有三个记录,那么在表单中它显示三个文本框,以便用户可以将数据提供给所有三个字段,但我的数据库中的表只有一个col他的身份和他的vaue。

所以我如何将数据提供给我的数据库,这样如果用户感觉到所有三个文本框,那么它可以很容易地存储到我的数据库中。 如果有可能通过三次重复输入标题,图像和价格那么它可以,但它应该有三个不同的项目名称和相应的值。

e.g。

如果有来自for循环的三个项目名称,则用户看到的是。

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

或者还有其他有效方法可以让我知道

1 个答案:

答案 0 :(得分:1)

执行此操作的“有效方法”是确保模型与此数据匹配,然后使用Model FormSets

如果由于某些神秘的原因,您不想定义与您的数据匹配的模型,则可以改为使用普通formsets

如果您不熟悉Django forms,我强烈建议您先尝试先了解这些内容。 This answer by yours truly对django表格进行了相当全面的演练。