我想知道将if语句放入for循环中时如何获得特定数量的项目
我知道我们可以做{% for i in items|slice ":5"%}
来获得许多物品,但是当我这样做时
{% for post in posts %}
{% for img in post_imgs %}
{% if img.link == post.link %}
<img class="class" src="{{img.img.url}}" style="width:100%">
{% endif %}
{% endfor %}
{% endfor %}
在if标记内无法执行此操作。任何解决方案
答案 0 :(得分:3)
来自this answer:
不建议在Django模板中更改对象的状态。 您可能应该硬着头皮计算条件 事先将额外的状态传递给模板,以便您简化 模板逻辑。
因此,您只需在视图中用python做比较,就像这样:
post_imgs_filtered = [img for img in post_imgs if img.link == post.link]
然后在您的模板中:
{% for img in post_imgs_filtered|slice ":5" %}
<img class="class" src="{{img.img.url}}" style="width:100%">
{% endfor %}