如何显示字典中包含列表作为django中的值的值

时间:2019-04-03 07:34:02

标签: python django

我想显示记录形式的字典,其中包含列表作为表格格式的值。

我的字典看起来像这样,我正在将这本字典作为{'data':datas}通过view.py文件

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 个答案:

答案 0 :(得分:1)

您将需要在视图中压缩它们并遍历联接列表。

data = zip(enroll_number, names, avgs)

...

{% for row in data %}
<tr>
    {% for item in row %}
    <td>{{ item }}</td>
    {% endfor %}
</tr>
{% endfor %}

答案 1 :(得分:0)

将表数据转换为面向行而不是面向列:

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

然后遍历模板中的行。