【问题标题】:Issues with feeding data into database when using for loop使用 for 循环时将数据输入数据库的问题
【发布时间】:2012-10-01 17:05:42
【问题描述】:

在我的模板中,我对某些字段使用了 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>

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

那么我如何将数据提供给我的数据库,以便如果用户感觉到所有三个文本框,那么它可以很容易地存储到我的数据库中。 如果标题、图片和价格三个重复条目是可能的,那么没关系,但它应该有三个不同的项目名称和对应的值。

例如

如果有三个项目名称来自 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

或者有任何其他有效的方法可以做到这一点,请告诉我

【问题讨论】:

  • 不太清楚您是如何使用表单的?这些项目是模型表单和表单集的一部分吗?如果没有,用户如何提交和更新给他们,每个项目是否有一个可供单击的按钮?如果是,则必须在按钮单击时执行更新操作,无论是按照您的表单设计还是按项目或批量进行。
  • 乍一看,这似乎是一个很好的 ModelForm(和 FormSet)用例。
  • 什么是 custom 变量(在您的模板中)?
  • 我刚刚制作了数组请看这个问题可能是这解释了我的问题stackoverflow.com/questions/12833567/…

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


【解决方案1】:

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

如果出于某种神秘的原因,您不想定义模型来匹配您的数据,您可以使用普通的formsets

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多