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 不起作用。我删除了该部分并在&lt;table&gt; 之前添加了&lt;/table&gt;,以在组已更改时关闭前一个表。我仍然需要弄清楚如何使用引导程序制作列和行

以上是关于Django 模板和引导表的主要内容,如果未能解决你的问题,请参考以下文章

使用带有自定义引导样式的 Django 模板放置 <select> 字段

如何在 django 模板的引导程序中创建可折叠卡片?

如何在引导选项卡块中按 django 模板中的多对多字段过滤对象

CSS DJANGO 和扩展模板

如何在 Django 应用程序中使用来自预制 index.html 模板和 css 的相对路径?

当我使用 Django Jinjna 模板将“schemaname.tablename”发送到 id 字段时,引导模式弹出中断