2013-04-24 159 views
1

我不擅長html中的表格,所以這個問題可能很簡單。Django - 從列表中創建表

我將列表{{ attributes }}傳遞給模板,我想創建一個2行多列的表。

TEMPLATE:

<div id="table"> 
<table border=0> 
{% for attr in attributes %} 
    <td> 
     <th>{{ attr.0 }}</th> 
     {{ attr.1 }} 
    </td> 
{% endfor %} 
</table> 
</div> 

我希望{{ attr.0 }}是報頭和在同一行上顯示,並且在第二行中顯示的{{ attr.1 }}

+0

你有一個在​​這是不正確的。 {{attributes}}包含什麼? – akotian 2013-04-24 14:18:07

+0

{{attributes}}是列表[['header','value'],...]]的列表 – 2013-04-24 14:19:46

+0

[如何在HTML中創建遞歸表](http://stackoverflow.com/問題/ 9442368/how-to-create-a-recursive-table-in-html) – 2013-04-24 22:37:23

回答

2

如何通過字典的按鍵約

<div id="table"> 
<table border=0> 
<thead> 
    <tr> 
    {% for attr_head in attributes.keys %} 
     <th>{{ attr_head }}</th> 
    {% endfor %} 
    </tr> 
</thead> 
<tbody> 
    <tr> 
    {% for attr in attributes.values %} 
     <td>{{ attr }}</td> 
    {% endfor %} 
    </tr> 
</tbody> 
</table> 
</div> 

只是循環,使它們在表頭th元素,然後遍歷值,使它們的tbody內。 thtd是表中的列,tr是行。

此外,你應該​​讀了起來,他們並不難

+0

我在考慮使用兩個循環,比如你的提議,但我想知道它是否可以在單個循環內完成相同的操作? – 2013-04-24 14:21:11

+1

這不是真的。如果你要渲染多行和2列,這將是非常簡單的,但 – Ngenator 2013-04-24 14:24:08

+0

好的,謝謝。我會接受你的,因爲你是第一個回答。 – 2013-04-24 14:26:53

1

你可以只循環兩次,一次一次的內容標題?

<div id="table"> 
    <table border=0> 
     <tr> 
      {% for attr in attributes %} 
      <th>{{ attr.0 }}</th> 
      {% endfor %} 
     </tr> 
     <tr> 
      {% for attr in attributes %} 
       <td>{{ attr.1 }}</td> 
      {% endfor %} 
     </tr> 
    </table> 
</div>