嵌套字典中的 Django 模板

Posted

技术标签:

【中文标题】嵌套字典中的 Django 模板【英文标题】:Django template in nested dictionary 【发布时间】:2014-03-04 14:02:54 【问题描述】:

我正在使用 Django 模板,但遇到了嵌套字典的一个问题。

字典:

result_dict = 'type_0' : 'file_name' : 'abc', 'count' : 0,
               'type_1' : 'file_name' : 'xyz', 'count' : 50

我的 html 文件中的模板是:

% for type in result_dict %
     type ,  type.file_name 
% endfor %

如何只显示 type_0 和 type_1 的值?

我试过了:

% for key, value in result_dict %
     key ,  value 
% endfor %

但它不起作用。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

使用dict.itemsdict.values

% for key, value in result_dict.items %
     value 
% endfor %

交互式 shell 中的示例:

>>> result_dict = 'type_0' : 'file_name' : 'abc', 'count' : 0,
...                'type_1' : 'file_name' : 'xyz', 'count' : 50
>>>
>>> t = Template('''
... % for key, value in result_dict.items %
...      value 
... % endfor %
... ''')
>>> print(t.render(Context('result_dict': result_dict)))


    'count': 50, 'file_name': 'xyz'

    'count': 0, 'file_name': 'abc'

>>> t = Template('''
... % for key, value in result_dict.items %
...      value|safe 
... % endfor %
... ''')
>>> print(t.render(Context('result_dict': result_dict)))


    'count': 50, 'file_name': 'xyz'

    'count': 0, 'file_name': 'abc'

【讨论】:

他如何访问嵌套字典中的值?例如。 value.file_name ? @RobertGrant,是的。为什么不在 django shell 中进行测试?上面的例子是从 django shell 复制过来的。 对不起,我实际上是在 sopython 聊天室里找其他人 :) 在没有 Python 的笔记本电脑上。悲伤的时光。

以上是关于嵌套字典中的 Django 模板的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历 Django 模板中的嵌套字典

如何遍历 django 模板中的嵌套字典

Django模板访问嵌套数据

Django 模板 - 嵌套字典迭代

Django模板:如何通过每个字典的嵌套属性重新组合字典列表?

Django模板语法