2014-11-14 45 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

通過數組,你的意思是列表正確嗎? – 2014-11-14 12:51:11

+0

是的。它由Postgres array_agg()函數返回。 – 2014-11-14 12:53:24

+0

如果我給{{row.5.0}},它給出第一個值,但不接受變量,嘗試{{row.5.i}} – 2014-11-14 12:58:30

回答

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]