每次用户想要删除数据时,我都有一个很好的模态显示删除确认对话框。问题是我的很多视图都在渲染模板中的元素列表,每个元素都有它的细节以及一个微小的删除红色按钮。当然在django中,视图会将一个元素列表传递给模板,例如客户端列表,它们将在如下表中呈现:
<table class="table table-striped">
<thead>
<tr>
<th>Email</th>
</tr>
</thead>
<tbody>
{% for client in clientes %}
<tr>
<td>{{ client.email }}</td>
<td>
<div class="btn-group">
<!-- Delete button -->
<a href="#myModal" class="btn btn-danger btn-mini" title="Eliminar">
<i class="icon-trash icon-white"></i></a>
</div>
</td>
</tr>
{% endfor %}
</tbody>
每当用户按下删除按钮出现并确认他正在删除某些数据时,我想要一个Bootstrap模式。现在,我已经设法使模式出现并删除用户,但不是正确的用户,模式以某种方式获取,或者尝试删除列表中的第一个用户。您可以在以下链接中使用模式检查我的整个模板:FULL HTML
最后,我的问题在某种程度上与将正确的{{client}}传递给模态而不是客户列表中的第一个有关,我想这是因为for上的第一个声明的模态然后不再声明它。
例如,我在表中有3个客户:
client1@something.com detele-button
client2@something.com detele-button
client3@something.com detele-button
无论我按什么客户端删除按钮,它总是显示带有client1数据的模态,如果按确认删除,实际上会删除它。
谢谢。
edit1:href不行。
答案 0 :(得分:6)
找到了答案,实际上归功于keithxm23。
检查生成的HTML有助于我理解这一点。实际上每个模态都是正确生成的,问题是每个模态的id属性设置为相同,在本例中为id="myModal"
,删除按钮为href="#myModal"
。解决方案是在整个文档中将模态id属性设置为唯一值,我设法通过设置模态id="{{client.pk}}"
和按钮href="#{{client.pk}}"
来实现。
答案 1 :(得分:0)
@Prachi Sharma
这可能是因为您使用的是整数,因此在 css 中标识符不能以数字、两个连字符或连字符后跟一个数字开头。你可以试试id="letter or word{{client.pk}}"
href="#letter or word{{client.pk}}"