我有一个打印一些元素列表的数组。我想在一组说“4”中打印这些元素。那就是我们的数组有10个元素。然后在我的模板中,首先<div>
显示前4个元素,然后下一个<div>
显示接下来的4个元素。等等。
我尝试打印就像我们在PHP中打印一样,但它在这里不起作用所以请建议我这样做。
c.list中有9个产品,我想像上面提到的那样展示它们:
{% if c.list|length >= 1 or c.list|length < 5 %}
{% for p in c.list %}
<div class="dis_box1">
<div class="item_imagebox_01"><a href="/shop/product/{{p.title}}"><img style ="width:145px;height:190px;"alt="" src="{{ MEDIA_URL }}{{p.image}}"></a>
<div class="img_line1"></div>
</div>
<div class="left"><span class="heart_text1"><a href="/shop/product/jhgjgj/">{{p.title}}</a></span></div>
</div>
{% endfor %}
{% endif %}
答案 0 :(得分:2)
这是你应该在你的视野中真正做的工作。
在您看来:
list_by_fours = []
list_len = len(c.list)
last_point = 0
next_point = 4
while last_point < list_len:
if next_point > list_len:
next_point = list_len
list_by_fours.append(c.list[last_point:next_point])
last_point += 4
next_point += 4
#Make sure you add list_by_fours to the template context
然后在你的模板中:
{% for bucket in list_by_fours %}
{% for p in bucket %}
...
{% endfor %}
{% endif %}
我确信有一种方法可以用itertools或其他一些花哨的技巧来做到这一点,但对于初学者来说这很简单易懂。