Представить данные из словаря python в шаблон django.?

У меня есть словарь

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

Как я могу (Loop to the Dictionary) представить мои данные как (HTML) таблицу в шаблон Django? Этот формат, который как таблица

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

Ответы

Ответ 1

Вы можете использовать метод 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>

Ответ 2

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

Ответ 3

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

<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>