通过 Django 模板中的列表字典进行处理
Posted
技术标签:
【中文标题】通过 Django 模板中的列表字典进行处理【英文标题】:processing through a dictionary of lists in a Django template 【发布时间】:2014-08-09 08:01:30 【问题描述】:我有一个如下所示的字典:list = item : [thing, thing, thing, thing], item : [thing, thing]
我目前正在尝试显示所有项目和类似的东西:
Item
thing
thing
thing
Item
thing
thing
我试过了
% for item, things in list %
-Item
% for thing in things %
thing
% endfor %
% endfor %
但我的输出看起来有点像
-
-
-
-
-
我之前尝试过
% for item in list %
-item
% for thing in list[item] %
thing
% endfor %
% endfor %
这根本不起作用。
【问题讨论】:
【参考方案1】:您应该使用list.items
来指定您要遍历 (key, value) 元组而不是键(就像您在 Python 代码中所做的那样)。
如果您希望输出更具可读性,您还必须包含一些换行符。
这样的事情应该可以工作:
% for item_name, things in list.items %
-item_name<br />
% for thing in things %
thing<br />
% endfor %
% endfor %
【讨论】:
正是我想要的,谢谢!一个问题。 item 有一个字段,它是模型 x 的 MTM。模型 x 有一个属性名称。 item.x.name
没有出现的任何原因?
item.x.name
表示您访问item
上的字段x
。如果字段x
是模型的m2m,但它实际上是ManyRelatedManager
并且不代表相关的模型实例(它在任何地方都没有意义,因为您可以有多个关联的对象)。
啊!这绝对是有道理的,我没有考虑过。以上是关于通过 Django 模板中的列表字典进行处理的主要内容,如果未能解决你的问题,请参考以下文章
字典值无法通过在django模板中使用相应的键进行迭代[重复]