Как отобразить значения из словаря, который содержит список в качестве значения в Django - PullRequest
2 голосов
/ 03 апреля 2019

Я хочу отобразить записи словаря, который содержит список в качестве значения в табличном формате.

мой словарь выглядит следующим образом, и я передаю этот словарь через файл view.py как {'data': datas}

enroll_number=[1,2,3]
names = ['tom','mike','john']
total = [80,90,80]

datas={
'id':enroll_number,
'names':names,
'total':avgs,
}

на моей HTML-странице мой код выглядит примерно так:

<table class="table table-striped">
<tr class="text-center">
    <th scope="col">Id</th>
    <th scope="col">Name</th>
    <th scope="col">Total</th>
</tr>
{% for key, value_list  in datas.items %}
<tr>
    {% for value in value_list %}
        <td>{{value}}</td>
    {% endfor %}
</tr>
{% endfor %}
</table>

, поэтому я получаю вывод, как это:

Id Name Total
1 2 3 
tom mike john 
80 90 80

Но я хочу вывод, как это

Id Name Total
1  tom   80
2  mike  90
3  john  80

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Вам нужно будет сжать их в виде и просмотреть список, к которому вы присоединились.

data = zip(enroll_number, names, avgs)

...

{% for row in data %}
<tr>
    {% for item in row %}
    <td>{{ item }}</td>
    {% endfor %}
</tr>
{% endfor %}
0 голосов
/ 03 апреля 2019

Преобразуйте данные таблицы в строки, а не в столбцы:

In [2]: [dict(zip(['id', 'names', 'total'], x)) for x in zip(enroll_number, names, total)]
Out[2]:
[{'id': 1, 'names': 'tom', 'total': 80},
 {'id': 2, 'names': 'mike', 'total': 90},
 {'id': 3, 'names': 'john', 'total': 80}]

А затем переберите строки в вашем шаблоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...