将数据从python字典呈现到django模板.

kn3*_*n3l 13 django django-templates

我有一本字典

data = {'sok': [ [1, 10] ], 'sao': [ [1, 10] ],'sok&sao':[ [2,20]] }
Run Code Online (Sandbox Code Playgroud)

我怎么能(循环槽字典)将我的数据作为(HTML)表呈现给Django模板.这种格式为表格

 author       qty            Amount
 sok            1              10         
 sao            1              10         
 sok&sao        2              20
 total               
Run Code Online (Sandbox Code Playgroud)

not*_*oop 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>
Run Code Online (Sandbox Code Playgroud)

  • 在python 2.x上,你应该使用`data.iteritems`而不是`data.items`. (2认同)

小智 6

不幸的是,django模板不处理Python元组.因此,在模板中使用"for author,values"是不合法的.相反,您必须使用".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>
Run Code Online (Sandbox Code Playgroud)