【问题标题】:Django: Count forloop.first only if a second if condition is metDjango:仅当满足第二个条件时才计算forloop.first
【发布时间】:2023-02-03 20:42:26
【问题描述】:
我有以下(过于简单的例子):
{% for item in myitems %}
{% if item == "orange" %}
{% if forloop.first %}
{{item}}
{% endif %}
{% endif %}
{% endfor %}
假设我的列表 myitems 是 ['apple','orange','watermelon']。第一个循环将是item=apple,所以它不会打印该项目,因为它不是“橙色”。现在在第二个循环中我们有 item=orange but it no longer fulfills if forloop.first` 所以它不会打印该项目。我想要一个 forloop.first,只有当它满足进入 if orange 条件时才打印。我怎样才能做到这一点?
【问题讨论】:
标签:
django
django-templates
【解决方案1】:
如果我理解正确的话,你基本上是在寻找这段代码:
{% for item in myitems %}
{% if item == "orange" and forloop.first %}
{{item}}
{% endif %}
{% endfor %}
一个简单的and 就可以完成这项工作。对于您提供的示例 ['apple','orange','watermelon'],呈现的模板将是空白的。
【解决方案2】:
我认为您可以检查 orange 是否在 myitems 中,然后打印 forloop.first,或者只打印列表的第一项:
{% if 'orange' in myitems %}
{{ myitems.0 }}
{% endfor %}