将列表呈现为django模板中的2列html表

时间:2012-08-08 12:30:44

标签: django django-templates

我有一个有序列表,我在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模板中合理地完成这个?

1 个答案:

答案 0 :(得分:9)

检查this recipe。您可能需要对其进行修改,但您会明白这一点。

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

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