Django 模板和引导表
Posted
技术标签:
【中文标题】Django 模板和引导表【英文标题】:Django Template and Bootstrap Tables 【发布时间】:2019-04-13 06:38:09 【问题描述】:我有一个看起来像这样的 django 查询集
Group Label Name
A 1 Jack
A 2 Ryan
B 2 Alice
C 1 Sam
B 1 Mark
...
基本上,我试图在我的 html 中做的是创建 6 个小表(2 行,每行 3 个表)。但是,我希望第一个表是按标签 # 排序的 A 组,第二个是按标签 # 排序的 B 组,等等。
我可以硬着头皮做 6 个不同的 django 查询集,但这似乎效率低下。
我最初的想法是在 django 模板中设置一些计数器来跟踪是否开始新行。但是,我不确定是否有一种方法可以在 django 模板而不是视图中进行过滤和排序。
感谢您的帮助。
【问题讨论】:
您为此尝试过的代码在哪里? 【参考方案1】:我会这样做:
-
使用order_by 操作按您想要的方式对查询集进行排序(按组排序,然后按标签排序)。
在您的模板中,使用ifchanged 条件来测试您何时拥有不同的组。在这种情况下,您可以根据需要输出表格标签。
上面第2项的例子:
% for object in queryset %
% ifchanged obj.group %
<table>
% endifchanged %
<tr>
<td> obj.label </td>
<td> obj.name </td>
</tr>
% ifchanged obj.group %
</table>
% endifchanged %
% endfor %
【讨论】:
谢谢!这行得通,除了最后一个ifchanged
不起作用。我删除了该部分并在<table>
之前添加了</table>
,以在组已更改时关闭前一个表。我仍然需要弄清楚如何使用引导程序制作列和行以上是关于Django 模板和引导表的主要内容,如果未能解决你的问题,请参考以下文章
使用带有自定义引导样式的 Django 模板放置 <select> 字段
如何在引导选项卡块中按 django 模板中的多对多字段过滤对象
如何在 Django 应用程序中使用来自预制 index.html 模板和 css 的相对路径?
当我使用 Django Jinjna 模板将“schemaname.tablename”发送到 id 字段时,引导模式弹出中断