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