Django模板嵌套for循环,if语句不起作用

时间:2016-03-11 01:35:38

标签: django

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

(我已经检查过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 %}

2 个答案:

答案 0 :(得分:1)

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

也许它应该是这样的:

{% 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 %}

答案 1 :(得分:0)

兄弟我也面临这个问题,所以我聪明的头脑为这个问题找到了一些聪明的解决方案,我们可以用 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 %}