[英]Django adding dict to template as a table
如何使用 Django 将字典很好地添加到模板中 - 只需要一个漂亮的表格中的所有信息。
我有以下字典:
{'Information': {0: 'size', 1: 'energy [kWh]', 2: 'ratio [PR]'}, 'Value': {0: 570.66, 1: 984092.66, 2: 81.7}}
尝试使用{% for v in values[0] %}
-无法解析余数:来自 'values[0]' 的 '[0]'
HTML 零件
<div>
<table>
<tr>
<th>Information</th>
<th>Value</th>
</tr>
<tr>
{% for key, values in dict_data.items %}
{% for v in values %}
<td>{{v}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
</div>
谢谢!
我认为您的 HTML 与您所说的结果不符; 您的Information
header 在Value
header 之前,但在您的 output 中, Value
是第一位的。 此外,您只有两个标题<th>
,但您的嵌套字典有 3 个值,因此您当前处理数据的方式将导致表体中的单元格多于标题。
另一个问题:你的values
也是一个字典,所以{% for v in values %}
只是让你得到嵌套字典的键( 0
, 1
, 2
),而你永远不会得到嵌套值( size
, energy [kWh]
, ratio [PR]
)。 你可能想要这样的东西:
{% for key, values in dict_data.items %}
{% for sub_key, sub_value in values.items %}
另外:您正在处理每行一个键/值集,因此表的第一行将具有Information
值,第二行将具有Value
值(反之亦然),但您想要的是一个值信息和每行值中的一个值。 因此,最终您将需要以不同的方式构建数据(也许成对)。
我将拥有信息/值对,而不是您当前的结构:
dict_data = {'Information': {0: 'size', 1: 'energy [kWh]', 2: 'ratio [PR]'}, 'Value': {0: 570.66, 1: 984092.66, 2: 81.7}}
info_value_pairs = [('size', 570.66), ('energy [kWh]', 984092.66), ('ratio [PR]', 81.7)]
然后在您的模板中:
{% for pair in info_value_pairs %}
<tr><td>{{ pair.0 }}</td><td>{{ pair.1 }}</td></tr>
{% endfor %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.