将内循环结果分配给变量

时间:2014-02-20 12:10:23

标签: django-templates

我的django模板中有一个这样的循环,这有一个内循环

       {% for productinfo in product_list %}
          <tr>
            <td>{{productinfo.attr}}</td>
            <td>
               <select class="form-control seller-combo" name="category">
                <option value="">Select Attributes</option>
                  {% for attr in product_list %}
                    <option value="{{attr|mongo_id}}">{{ attr.attr }}</option>
                  {% endfor %}
              </select> 
            </td>
          </tr>
        {% endfor %}

我的问题是,每次外循环运行时,内循环也会运行多次。我想从中删除内部循环,并希望在外部循环运行之前调用此内部循环。

例如代码应该是这样的,

                  {% for attr in product_list %}
                    <option value="{{attr|mongo_id}}">{{ attr.attr }}</option>
                  {% endfor %}

并将此代码的结果分配给变量,将其标记为result

然后像这样附上result

         {% for productinfo in product_list %}
              <tr>
                <td>{{productinfo.attr}}</td>
                <td>
                   <select class="form-control seller-combo" name="category">
                    <option value="">Select Attributes</option>
                      {{result}}
                  </select> 
                </td>
              </tr>
            {% endfor %}

这样做我可以提高我的代码性能

1 个答案:

答案 0 :(得分:1)

  

{%for product_list%}}

<option value="{{attr|mongo_id}}">{{ attr.attr }}</option>

  

{%endfor%}

将此作为单独的模板this.html和{% include 'this.html' %}

OR

使用标记

来提高性能
  

{%with product_list as p_list%}

     

“写你的for循环”

     

{%endwith%}