Представить данные из словаря Python в шаблон Django. - PullRequest
13 голосов
/ 09 октября 2009

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

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

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

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

Ответы [ 3 ]

37 голосов
/ 09 октября 2009

Вы можете использовать метод 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>
6 голосов
/ 04 декабря 2009

К сожалению, шаблоны 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 голосов
/ 26 ноября 2011

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

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...