Представлять данные из словаря 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               

person kn3l    schedule 09.10.2009    source источник


Ответы (3)


Вы можете использовать метод 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>
person notnoop    schedule 09.10.2009
comment
Отредактировано в ответ для потомков. - person David M; 16.12.2012
comment
В python 2.x вы должны использовать data.iteritems, а не data.items. - person TM.; 07.01.2014

К сожалению, шаблоны 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>
person Brian H    schedule 04.12.2009

В проекте, над которым я сейчас работаю, у меня была такая же проблема, благодаря вашим ответам я сделал что-то вроде этого, и это сработало нормально:

<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>
person Santiago    schedule 26.11.2011