2014-11-14 5 views
0

У меня есть исходный SQL-вывод, который также содержит несколько массивов. Я хочу проанализировать эти строки и перебрать их через массивы.Прохождение через несколько массивов в шаблоне django

Я написал следующий код:

 {% for row in in results %} 
       <li>Title : {{row.4}}</li> 
       <li>Description :{{ row.2}}</li> 
       {% for i in row.3|length|range %} 
         <li class="bs-callout"> 
         <button id="{{row.3.forloop.counter0}}">{{row.4.forloop.counter0}}</button> 
         <span>{{row.5.forloop.counter0}}</span> 
        </li> 
        {% endfor%} 
    {% endfor %} 

Пример строки:

['Col1','Col2',['txt1','txt2','txt3'],['txt1','txt2','txt3'],['txt1','txt2','txt3']] 

В этом случае row[5],row[6],row[7] массивы которых содержит 5-7 значений. Для каждой строки я хочу напечатать заголовок в row[4] и перечислить элементы массива.

+0

С помощью массивов, которые вы имеете в виду в списке справа? –

+0

Да. Он возвращается функцией Postgres array_agg(). –

+0

Если я даю {{row.5.0}}, он дает первое значение, но не принимает переменные, также пытался {{row.5.i}} –

ответ

0

Я не знаю, правильно ли это сделать. Но это единственное, что сработало для меня.

{% for row in in results %} 
     <li>Title : {{row.4}}</li> 
     <li>Description :{{ row.2}}</li> 
     {% for i in row.3|length|range %} 
      <li class="bs-callout"> 
       <button id="{{row.3|getitem:i}}">{{row.4|getitem:i}}</button> 
       <span>{{row.5|getitem:i}}</span> 
      </li> 
     {% endfor%} 
    {% endfor %} 

Где getitem - это настраиваемый фильтр.

@register.filter(name='getitem') 
def get_item(list,offset): 
    return list[offset] 
Смежные вопросы