首页 > 解决方案 > Flaks / Jinja 嵌套 if 语句

问题描述

我被困在一个嵌套的 if 语句上,认为我接近它是错误的。我在我的页面上呈现了大约 100 种产品的列表。我想要一个嵌套的“if”语句。用户将拥有一个工具包,如果产品在他们的工具包中,我想呈现“已经使用”,否则“添加到工具包?”

{% for product in products|sort(attribute="name") %}
    {{ product.name }}
    {% for products in toolkit %}
        {% if product.name in toolkit %}
            <p>Already Uses<p>
        {% else %}
            <p>Add to toolkit?<p>
        {% endif %}
{% endfor %}

标签: flaskjinja2

解决方案


有关以下内容的更多详细信息:jinja2 检查字典列表中是否存在值

你在正确的道路上。这将有助于提供对象的结构(例如)product......

{% for product in products|sort(attribute="name") %}
    {{ product.name }}
    {% if product.name in toolkit %}
      <p>Already Uses<p>
    {% else %}
      <p>Add to toolkit?<p>
    {% endif %}
{% endfor %}

如果toolkit是嵌套地图map

{% if product.name in toolkit|map(attribute="<whatever has the value equal with product.name>") %}
  <p>Already Uses<p>
{% else %}
  <p>Add to toolkit?<p>
{% endif %}

推荐阅读