【问题标题】:django template find dictionary in listdjango模板在列表中查找字典
【发布时间】:2011-08-12 14:35:38
【问题描述】:

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

我有一个如下所示的列表: [{foo: 2, bar: 5},{foo: 3, bar: 4}]

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

所以现在我正在循环我的项目,我需要显示每个 foo 的 bar 值,并将其从列表中拉出。有没有办法在 django 模板中做到这一点?

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

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    我认为,与其尝试在模板中处理此数据结构,不如将其折叠成一个 dict,例如:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 2012-11-13
      • 2018-01-27
      • 2021-10-17
      • 2018-09-11
      • 1970-01-01
      • 2016-02-29
      • 2021-06-11
      • 2016-08-31
      相关资源
      最近更新 更多