【问题标题】: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 %}
      

      【讨论】:

        猜你喜欢
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        • 2021-08-21
        • 2018-09-24
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多