2014-02-20 3 views
1

У меня есть цикл, как это в моем шаблоне 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

{% для ATTR в product_list%}

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

{%}% ENDFOR

сделать это в качестве отдельного шаблона this.html и {% include 'this.html' %}

OR

увеличить использование производительности с тегом

{% с product_list как p_list%}

"написать свой цикл"

{% ENDWITH%}

Смежные вопросы