2009-10-09 52 views
13

我有一本字典將python字典中的數據呈現給django模板。

data = {'sok': [ [1, 10] ], 'sao': [ [1, 10] ],'sok&sao':[ [2,20]] } 

我怎麼能(環槽詞典)介紹我的數據(HTML)表Django的模板。?? 此格式如表

author  qty   Amount 
sok   1    10   
sao   1    10   
sok&sao  2    20 
total    

回答

37

可以使用dict.items()方法來獲取字典元素:

<table> 
    <tr> 
     <td>author</td> 
     <td>qty</td> 
     <td>Amount</td> 
    </tr> 

    {% for author, values in data.items %} 
    <tr> 
     <td>{{author}}</td> 
     {% for v in values.0 %} 
     <td>{{v}}</td> 
     {% endfor %} 
    </tr> 
    {% endfor %} 
</table> 
+0

值[0]不工作 – kn3l 2009-10-13 07:09:06

+2

values.0 ...... – 2012-04-09 15:14:51

+1

編輯爲後人的答案。 – 2012-12-16 10:36:01

6

不幸的是,Django模板不涉及Python的元組。因此,在模板中使用「作者,值」是不合法的。相反,您必須使用「.index」按索引訪問元組或值,如「tuple.0」和「tuple.1」中所示。

<table> 
    <tr> 
     <td>author</td> 
     <td>qty</td> 
     <td>Amount</td> 
    </tr> 

    {% for entry in data.items %} 
    <tr> 
     <td>{{entry.0}}</td> 
     {% for v in entry.1 %} 
     <td>{{v}}</td> 
     {% endfor %} 
    </tr> 
    {% endfor %} 
</table> 
4

在項目IM現在的工作,我也有同樣的問題,感謝您的答覆我已經結束了做這樣的事情,它工作得很好:

<table border=1 cellpadding=1 cellspacing=1> 
<tr> 
    <td>author</td> 
    <td>qty</td> 
    <td>Amount</td> 
</tr> 
{% for k,v in resultado.iteritems %} 
    <tr><td> {{ k }} </td><td>{{ v[0] }}</td><td> {{ v[1] }} </td></tr> 
{% endfor %} 
</table>