我想要做的很简单:我有一个模型,我正在运行一个重组循环。现在我想显示循环的前4个项目,然后继续下一行与接下来的4个项目,直到列表完成。如果没有其他项目,该行上的其他单元格可以保持为空。
我试图了解如何在这里使用迭代,但是无法弄清楚它是如何适合我的。另外,我认为应该可以用更简单的方式做到这一点......下面我复制了我现在拥有的代码,这显然显示了循环的第一项4次,然后是第二项的4次,等。
我知道这个网站上有一些类似的问题,但我无法利用它们为我的问题开发解决方案。我在Google App Engine上运行Python。非常感谢任何帮助!
{% regroup communities|dictsort:"in_country" by in_country as community_list %}
{% for in_country in community_list %}
<h2 style="font-size:16px;">{{ in_country.grouper }}</h2>
<table cellspacing="0">
{% for item in in_country.list|dictsort:"name" %}
<tr style="text-align:center;">
<td width="200px" class='community_table'>
<img src="{{ item.image }}" style="height:40px;"><br />
<a href='{{ item.url }}' style="font-size:10px; margin-left:10px;" TARGET = "_blank">{{ item.name }}</a><br />
{{ item.com_type }}<br />
{{ item.in_city }}<br />
</td>
<td width="200px" class='community_table'>
<img src="{{ item.image }}" style="height:40px;"><br />
<a href='{{ item.url }}' style="font-size:10px; margin-left:10px;" TARGET = "_blank">{{ item.name }}</a><br />
{{ item.com_type }}<br />
{{ item.in_city }}<br />
</td>
<td width="200px" class='community_table'>
<img src="{{ item.image }}" style="height:40px;"><br />
<a href='{{ item.url }}' style="font-size:10px; margin-left:10px;" TARGET = "_blank">{{ item.name }}</a><br />
{{ item.com_type }}<br />
{{ item.in_city }}<br />
</td>
<td width="200px" class='community_table'>
<img src="{{ item.image }}" style="height:40px;"><br />
<a href='{{ item.url }}' style="font-size:10px; margin-left:10px;" TARGET = "_blank">{{ item.name }}</a><br />
{{ item.com_type }}<br />
{{ item.in_city }}<br />
</td>
{% endfor %}
</table>
{% endfor %}
答案 0 :(得分:1)
<table cellspacing="0">
{% for item in in_country.list|dictsort:"name" %}
{% if forloop.counter0|divisibleby:4 %}
<tr style="text-align:center;">
{% endif %}
<td width="200px" class='community_table'>
<img src="{{ item.image }}" style="height:40px;"><br />
<a href='{{ item.url }}' style="font-size:10px; margin-left:10px;" TARGET = "_blank">{{ item.name }}</a><br />
{{ item.com_type }}<br />
{{ item.in_city }}<br />
</td>
{% if forloop.counter|divisibleby:4 %}
</tr>
{% endif %}
{% endfor %}
</table>
答案 1 :(得分:0)
我建议在将代码传递给模板之前,在Python代码中对行进行分组。你可以使用这样的迭代器来做到这一点:
my_iter = iter(my_list)
grouped = zip(my_iter, my_iter, my_iter, my_iter) # or zip(*[my_iter]*4)