Django通过表单识别对象

时间:2018-03-26 00:18:56

标签: python django forms

我正在创建一个包含对象列表的网页,每个对象都有一个删除它的按钮。我用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>

1 个答案:

答案 0 :(得分:2)

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

<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在迭代期间不更改列表的大小非常严格,因此最好只查看对象索引(偏移量)和读取/删除方式。