我有一个清单:
c = [1,2,3,4,5,6,7,8]
在我的模板中,我想按如下方式输出:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>...</td>
</tr>
</table>
<table>
<tr>
<td>5</td>
<td>...</td>
<td>8</td>
</tr>
</table>
这样做的最佳方式是什么?
答案 0 :(得分:2)
如果您想使其更通用,您还可以使用内置的divisibleby
代码
{% for value in c %}
{% if forloop.counter0|divisibleby:cut_off %}
<table>
<tr>
{% endif %}
<td>{{value}}</td>
{% if forloop.counter|divisibleby:cut_off %}
</tr>
</table>
{% endif %}
{% endfor %}
其中c
是列表,cut_off
是切片编号(例如问题中为4)。这些变量应该被发送到您视图中的模板。
答案 1 :(得分:1)
您可以使用slice
模板过滤器:
<table>
<tr>
{% for value in c|slice:":4" %}
<td>{{ value }}</td>
{% endfor %}
</tr>
</table>
<table>
<tr>
{% for value in c|slice:"4:" %}
<td>{{ value }}</td>
{% endfor %}
</tr>
</table>
假设在模板上下文中传递了c
。
slice
基本上遵循通常的python slicing syntax:
>>> c = [1,2,3,4,5,6,7,8]
>>> c[:4]
[1, 2, 3, 4]
>>> c[4:]
[5, 6, 7, 8]