【问题标题】:Django template nested for loop with if statement not workingDjango模板嵌套for循环,if语句不起作用
【发布时间】:2016-03-11 01:35:37
【问题描述】:

我需要在我的 Django 模板中有一个嵌套循环,其中外循环遍历对象列表,内循环遍历这些对象 ID 的列表,我只想为 id 做一些事情内部列表,但是它永远不会执行。我认为这与 if 语句的条件有关,因为如果我将其替换为 true 语句,它会起作用,但它不会像现在这样起作用

(我已经检查了 id 的重叠)

{% for outer in outer_obj_list %}
     {% for inner_id in inner_id_list %}
         {% if outer.id == inner_id %}
             // do something
             console.log({{inner_id}});
             console.log({{outer.id}});
         {% endif %}
     {% endfor %}
{% endfor %}

【问题讨论】:

    标签: django


    【解决方案1】:

    兄弟,我也面临这个问题,所以我聪明的头脑得到了一些聪明的解决方案,我们可以很容易地用 JavaScript 做到这一点,所以我们需要在 JavaScript 中运行它。

    {% for outer in outer_obj_list %}
         {% for inner_id in inner_id_list %}
              if(outer.id == inner_id.id ){
               console.log({{inner_id.id}});
               console.log({{outer.id}});
               //And also if we reserve place in DOM then we can 
               //change the inner Html of them easily like.
               //demo = document.getElementById("demo");
               //demo.innerHTML = inner_Id.id or outer.id
              }
         {% endfor %}
    {% endfor %}
    

    【讨论】:

      【解决方案2】:

      语法似乎正确。我只会详细地输出​​所有内容。

      也许应该是这样的:

      {% for main_obj in main_obj_list %}
           main_obj: {{ main_obj }}
      
           {% for obj_id in obj_id_list %}
              obj_id: {{ obj_id}}
              main_obj: {{ main_obj.id}}
      
               {% if main_obj.id == obj_id %}
                   // do something
                   match: {{main_obj.id}} ==  {{obj_id}} ;
      
               {% endif %}
           {% endfor %}
      {% endfor %}
      

      【讨论】:

      • 别以为这样行不通,下面是对象的结构:obj = {id:34, name="x"},outer_obj_list例如是[obj, obj, obj , obj],inner_id_list 是:[34, 45],其中 34 和 45 是 outer_obj_list 中两个对象中的一些的 id
      • 我明白了——我会仔细检查你没有比较数字和字符串——否则你的语法是正确的。我更新了我的回复以建议一种调试方法如果您没有得到任何值,则可能不匹配。另外,这是在 JS 中吗?为什么是 console.log?
      猜你喜欢
      • 2012-01-21
      • 2019-08-02
      • 2014-04-25
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多