使用 Jinja2 获取满足条件的列表项数

Get count of list items that meet a condition with Jinja2

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

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

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

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