django模板在列表中查找字典

时间:2011-04-25 21:18:10

标签: django django-templates

这可能非常简单,但我已经阅读了文档并且找不到任何内容。

我有一个看起来像的列表: [{foo:2,bar:5},{foo:3,bar:4}]

其中foo实际上是一个对象id。 bar是从values.annotate查询生成的。

所以现在我循环我的项目,我需要显示每个foo的条形值,从列表中拉出它。有没有办法在django模板中执行此操作?

所以我需要一个模板标签或过滤器,从列表中提取字典,其中foo值等于我正在使用的对象的id。 (除了列表中的x:如果x.foo =#:,因为我的列表中会有很多字眼,而且看起来很笨拙。)

1 个答案:

答案 0 :(得分:2)

我认为,如果不是试图在模板中处理这个数据结构,而是将其折叠成一个像这样的字典,那可能会更好:

aggregate_dict = {<id_1>:<val_1>,...}

这样您就可以更轻松地将模板中的值设置为{{aggregate_dict.<id_n>}}

你可以用一个小循环来做到这一点:

aggregate_dict = {}
for item in your_old_list:
  aggregate_dict[item[foo]] = item[bar]