【问题标题】:Rendering a list as a 2-column html table in a django template在 django 模板中将列表呈现为 2 列 html 表
【发布时间】:2012-08-08 12:30:44
【问题描述】:

我有一个有序列表,我将其呈现为 Django 模板中的 2 列 html 表。在表格中,要输出元素,使前(n+1)/2个元素在第一列,其余的在第二列,如下:

<table>
  <tr>
     <td>Elem 1</td>
     <td>Elem 4</td>
  </tr>
  <tr>
    <td>Elem 2</td>
    <td>Elem 5</td>
  </tr>
  <tr>
    <td>Elem 3</td>
    <td></td>
  </tr>
</table>

假设我的元素在 {{ elems }} 的上下文中,我如何在 Django 模板中合理地完成此操作?

【问题讨论】:

  • 我认为您必须在视图中格式化/重新排列您的 elems 以便以这种方式使用它。

标签: django django-templates


【解决方案1】:

检查this recipe。你可能需要修改它,但你会明白的。

使用它,您只需在模板中执行以下操作:

{% for row in elems|columns:2 %}
 <tr>
    {% for item in row %}
        <td>{{ item }}</td>
    {% endfor %}
 </tr>
{% endfor %}

【讨论】:

  • 我修改了这个 sn-p 以按顺序显示项目(从左到右):只需将 return 表达式更改为:return [thelist[n*i:n*(i+1)] for i in range(split)]
猜你喜欢
  • 2014-11-16
  • 2021-06-11
  • 2017-07-17
  • 2012-06-25
  • 2015-07-20
  • 2020-09-06
  • 1970-01-01
  • 2017-03-22
  • 2015-11-27
相关资源
最近更新 更多