【问题标题】:Get count of list items that meet a condition with Jinja2使用 Jinja2 获取满足条件的列表项的计数
【发布时间】:2016-10-12 19:14:07
【问题描述】:

我有一个字典列表,其中每个字典都有一个布尔条目。我想显示True 的项目以及这些项目的数量。我正在使用selectattr 过滤器,但它返回一个生成器,并在其上调用|length 会引发错误。如何获取 Jinja 中 selectattr 返回的项目的长度?

my_list = [{foo=False, ...}, {foo=True, ...}, ...]
{{ my_list|selectattr('foo', 'equalto', True)|length }}

【问题讨论】:

  • 最好将逻辑排除在模板之外。但是如果你仍然会这样做,@larsks 的方法是相当不错的。

标签: python flask jinja2


【解决方案1】:

有一个list 过滤器可以将生成器转换为列表。所以:

{{ my_list|selectattr('foo')|list|length }}

【讨论】:

  • 如果键不使用布尔值,比如 1、2、3,我该怎么做。我想得到 foo == 3 的所有项目的长度
  • 您可能想将其作为一个新问题发布(因为在评论中确实无法回复代码或配置示例)
  • 想通了{ my_list|selectattr('foo', 'equalto', 'xyz')|list|length }}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 2019-07-15
  • 2020-02-02
  • 2021-02-15
  • 1970-01-01
相关资源
最近更新 更多