2009-10-09 68 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>