我正在创建一个包含对象列表的网页,每个对象都有一个删除它的按钮。我用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>
答案 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在迭代期间不更改列表的大小非常严格,因此最好只查看对象索引(偏移量)和读取/删除方式。