循环遍历 django 模板中的 defaultdict(list) 结构
Posted
技术标签:
【中文标题】循环遍历 django 模板中的 defaultdict(list) 结构【英文标题】:Loop through a defaultdict(list) structure in a django template 【发布时间】:2015-12-25 01:34:51 【问题描述】:我有一个这样的结构my_dict
:
defaultdict(<class 'list'>,
<MyClass: myobject1>: [<ThingClass: mything1>, <ThingClass: mything2>, ...],
<MyClass: myobject2>: [<ThingClass: mything6>, <ThingClass: mything7>, ...],
<MyClass: myobject3>: [<ThingClass: mything45>, <ThingClass: mything46>, ...],
...
)
我想像这样遍历对象:
% for object in my_dict %
object.somefield
% for thing in object %
thing.somefield
% endfor %
% endfor %
如何循环遍历这个嵌套循环中的内容? myobject1 不可迭代,那么如何获取可迭代?
【问题讨论】:
【参考方案1】:您应该遍历字典的.items()
以在每次迭代时同时获取对象和列表:
% for obj, things in my_dict.items %
obj.somefield
% for thing in things %
thing.somefield
% endfor %
% endfor %
【讨论】:
谢谢。如果我在上下文中传递my_dict
并尝试在模板中获取my_dict.items
,它会失败:my_dict.items = []
但我尝试在上下文中传递my_dict.items()
,它有效吗?!我不明白。
我认为不可能。 ***.com/questions/8018973/…我无法制作更多的 cmets,因为我不知道您在模板和视图中还做了什么。以上是关于循环遍历 django 模板中的 defaultdict(list) 结构的主要内容,如果未能解决你的问题,请参考以下文章
循环遍历 django 模板中的 defaultdict(list) 结构