如何在django python模板中迭代循环

时间:2016-07-13 08:48:34

标签: python django templates

我目前正在创建一个模板,我想迭代一个列表然而这将是棘手的,因为我想每行只显示5个项目,然后下一个项目将转到下一行。我想在每5个项目之间显示一个图像。

这是我的清单:

    myList = [{'id':1, 'image':'image1.jpg'},
{'id':2, 'image':'image2.jpg'},
{'id':3, 'image':'image3.jpg'},
{'id':4, 'image':'image4.jpg'},
{'id':5, 'image':'image5.jpg'},
{'id':6, 'image':'image6.jpg'},
{'id':7, 'image':'image7.jpg'},
{'id':8, 'image':'image8.jpg'},
{'id':9, 'image':'image9.jpg'},
{'id':10, 'image':'image10.jpg'},
{'id':11, 'image':'image11.jpg'},]

这是我的模板

myList.html

{% for a in myList %}

<a href="{{a.image}}">{{a.id}}</a>
{% if forloop.counter == 5%}
 <img src="{{a.image}}">
{% endif %}

{% endfor %}

这些图片是每个项目的链接。

这就是我想看到的

1 2 3 4 5
<image>
6 7 8 9 10
<image>
11

如果我点击每个项目,图像将显示在下一行。

以下是有关其工作原理的示例图片 IMAGE LINK

  • 如果单击数字1,则图像1将显示在绿色框中,即 2号到5号的方式相同。
  • 如果点击数字9,图像9将显示在绿色框中, 6号到数字的方式相同   10。

2 个答案:

答案 0 :(得分:1)

您需要使用divisibleby过滤器

{% if forloop.counter0|divisibleby:5 %}

答案 1 :(得分:1)

您可以像这样使用divisibleby:     {%for myList%}

<a href="{{a.image}}">{{a.id}}</a>
{% if forloop.counter0|divisibleby:5 %}
 <img src="{{a.image}}">
{% endif %}

{% endfor %}

Link到文档。