在 Django 中将值传递给 Bootstrap 模式
Posted
技术标签:
【中文标题】在 Django 中将值传递给 Bootstrap 模式【英文标题】:Passing value to Bootstrap modal in Django 【发布时间】:2012-10-21 12:58:18 【问题描述】:我有一个很好的模式,每次用户想要删除数据时都会显示一个删除确认对话框。问题是我的许多视图在模板中呈现元素列表,每个元素都有其详细信息以及一个小的删除红色按钮。当然,在 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 不正确。
【问题讨论】:
如果每个客户端在<a href="% url delete_client client.id %"
生成的 url 都不同,您是否检查了生成的 HTML?
是的,抱歉,该行不正确,例如,我已对其进行了编辑,完整的 HTML 显示了我的确切 HTML。谢谢
我的意思是询问在尝试加载页面后在您的浏览器中生成的 HTML。不包含 Django 模板标签的那一种。在那里,是为每个客户唯一生成的 href。
您能否将生成的 HTML 和 javascript 代码粘贴到 jsfiddle 中。没有django模板标签的代码。
如果您解决了问题,请将其作为答案并接受。不要在标题中添加 [已解决]。
【参考方案1】:
找到了这个问题的答案,实际上感谢 keithxm23。
检查生成的 HTML 帮助我纠正了这一点。实际上每个模态都是正确生成的,问题是每个模态的 id 属性设置为相同,在本例中为id="myModal"
,而删除按钮具有href="#myModal"
。解决方案是将模态 id 属性设置为整个文档中的唯一值,我设法通过设置模态 id="client.pk"
和按钮 href="#client.pk"
来做到这一点。
【讨论】:
我面临同样的问题。但是这个解决方案对我不起作用。【参考方案2】:@普拉奇夏尔马
这可能是因为您使用的是整数,在 css 中,标识符不能以数字、两个连字符或一个连字符后跟一个数字开头。你可以试试id="letter or wordclient.pk"
href="#letter or wordclient.pk"
【讨论】:
以上是关于在 Django 中将值传递给 Bootstrap 模式的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django-registration 中将帐户信息传递给 django 模板?
如何在 Django 项目中将请求传递给 Celery 任务参数?