如何在Django模板中访问这种类型的词典(词典中的词典)?
我想在Django视图/模板中高度自定义Pandas生成的DataFrame。我可以生成我想渲染的字典,但是事实证明,使用模板标签访问元素非常困难。
这是字典的示例:
df_dict =
{
('Key1', 'Key2'): {
'Line 1': '',
'Line 2': '',
'Line 3': 53000.0,
'Line 4': -120000.0,
'Line 5': 45000.0
},
('Key3', 'Key2'): {
'Line 1': '',
'Line 2': 100.0,
'Line 3': '',
'Line 4': '',
'Line 5': ''
},
('Key4', 'Key2'): {
'Line 1': 1000.0,
'Line 2': '',
'Line 3': 2000.0,
'Line 4': '',
'Line 5': ''
}
}
我想要的模板输出(不考虑CSS格式)是:
Key1 Key3 Key4
Key2 Key2 Key2
Line 1 1000
Line 2 100
Line 3 53000 2000
Line 4 -120000
Line 5 45000
我已经厌倦了一个简单的模板标签来像这样遍历字典:
{% for key, value in object %}
<li>{{key}} : {{value}}</li>
{% endfor %}
但它仅提供:
Key1 : Key2
Key3 : Key2
Key4 : Key2
我不知道如何进入上述键对的值的字典。我也曾经尝试过无数的.dot标记,但是没有运气。
我还查看了其他将呈现'nice'html的库,但是我想进一步使用进行自定义bootstrap。我还查看了wenzhixin的解决方案,但我希望获得更大的灵活性。
数据结构更新
该信息显然来自QuerySet,但是为了合并和枢转多个模型,我使用了Pandas。正确构建并格式化数据框后,我就使用了该df_dict.to_dict()方法(df_dict数据框在哪里),然后将其传递到上下文字典中。基本上:
context = {
#stuff,
'df_dict': df_dict,
#more stuff,
}
return context
我展示的结构很简单-列索引更有可能具有三个或更多键。值的大小和设计在设计上将是恒定的(换句话说,每个键组将有5行值字典,或在值字典中有19行)。
最后的说明,@ ScottSkiles弥补了差距-因此,这里的问题开始是在字典中使用字典,但最后使用模板示例的答案省略了模板中的.items方法,而数据集是一个列表。但是下面的答案是适当适用的。
相关分类