【问题标题】:Django identify object through formDjango通过表单识别对象
【发布时间】:2018-03-26 00:18:55
【问题描述】:

我正在制作一个包含对象列表的网页,每个对象都有一个删除它的按钮。我正在使用 Django 表单进行此操作,但是一旦我发布了帖子,我就无法确定它来自哪个对象。我该怎么做?

这是我的html代码:

<ul>
    {% for item in item_list %}
        <li>
            <form name="{{ item.nombre }}" method="POST" action="/inventario/">
                {% csrf_token %}
                <input type="submit" name="del_item" value="x">
                {{ item.nombre }}: {{ item.cantidad }}
            </form>
        </li>
    {% endfor %}
</ul>

【问题讨论】:

  • 可以很好的将隐藏变量下对象的id传递给表单

标签: python django forms


【解决方案1】:

一般来说,您会希望在项目或对象标识符中包含一个隐藏字段:

<input type="hidden" name="ID" value="12345">

在 python 中,您可以从 POST 数据中获取此信息。至于从列表中删除它,我看不到您的代码以了解您如何存储列表,但这可能会有所帮助:

ID = ... #get id from post data
for i in range(len(my_list_of_objects)):
    if my_list_of_objects[i] == ID:
        del(my_list_of_objects[i])  
        break

我不使用for obj in my_list_of_objects 有一个特定的原因。 Python 对于在迭代期间不改变列表的大小非常严格,因此最好只查看对象索引(偏移量)并以这种方式读取/删除。

【讨论】:

  • 谢谢,这正是我所需要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多