2012-02-22 112 views
6

我有一個16個結果的列表,我們稱之爲「結果」。我想安排他們在一張4 x 4桌。django模板將數組轉換爲HTML表格

使用django模板,我該怎麼做? (它似乎不像週期會幫助我在這裏)

<table> 
{% for r in results %} 
...? 
{% endfor %} 
</table> 

謝謝!!

回答

16

您可以使用cycle標籤。

<table> 
    {% for r in results %} 
    {% cycle '<tr>' '' '' '' %} 
     <td>{{r.content}}</td> 
    {% cycle '' '' '' '</tr>' %} 
    {% endfor %} 
</table> 

將輸出類似...

<table> 
    <tr> 
    <td>result 1</td> 
    <td>result 2</td> 
    <td>result 3</td> 
    <td>result 4</td> 
    </tr> 
    <tr> 
    <td>result 5</td> 
    <td>result 6</td> 
    <td>result 7</td> 
    <td>result 8</td> 
    </tr> 
    <!-- etc --> 
</table> 
+0

好戲。現在我拯救了這個。學習新事物! – CppLearner 2012-02-22 01:59:46

+0

謝謝,按我的需要工作。欣賞它。 – 2012-02-22 02:36:15

7

你需要建立這樣的事情

<table> 
<tr> 
    <th>header1</th> 
    <th>header2</th> 
    <th>header3</th> 
    <th>header4</th> 
</tr> 
{% for r in result %} 
<tr> 
    <th> {{ result.name }}</th> 
    <th> {{ result.address }}</th> 
    <th> {{ result.time }}</th> 
    <th> {{ result.date }}</th> 
</tr> 
{% endfor %} 
</table> 
提供

,你有一個數組(實際上,字典)這樣

result['name'] 
result['address'] 
result['time'] 
result['date'] 
return render_to_response("my_template.html", {'result:result'}) 

有許多的做到這一點。這是最直接的方法。看看Django模板標籤文檔。

下面是我在整個過程中學到的技術列表。還有更多,但我沒有時間記錄所有這些。 http://binarybugs01.appspot.com/entry/template-iteration-techniques

有時你必須小心處理傳遞給模板的上下文字典。 如果你通過這個

result = {'name': 'John', 'time': '12/2/2012'....etc} 
context['result'] = result 
return render_to_response("my_template.html", context} 

你迭代result.result和鍵result.result.name


我也想提醒你,你要麼有一個列表,集,字典,或但是,您可以導入數組並使用它。

+4

不result.name我認爲它r.name和r.time,r.address,r.date {%爲結果%R } {{result.name}} {{result.address}} {{result.time}} {{result.date}} {%endfor%} – zabusa 2016-03-15 12:00:47