gpt4 book ai didi

python - 如何在 jinja2 selectattr 过滤器中使用变量?

转载 作者:行者123 更新时间:2023-11-28 17:09:08 24 4
gpt4 key购买 nike

我正在尝试根据属性过滤列表。如果我将该属性用作字符串,一切正常:

{% set ys = xs | selectattr("type", "equalto", "first") | list %}

如果我尝试使用一个变量(在我的例子中是一个枚举的属性)而不是我得到一个空列表

{% set ys = xs | selectattr("type", "equalto", MyEnum.FIRST) | list %}

变量 MyEnum.FIRST 包含字符串“first”。

最佳答案

您正确地传递了一个变量,但如果您现在得到一个空列表,则 MyEnum.FIRST 不会生成字符串 'first'

如果 MyEnumenum.Enum subclass ,则属性将是该类的实例。使用 .value attribute获取实际的字符串值:

{% set ys = xs | selectattr("type", "equalto", MyEnum.FIRST.value) | list %}

快速演示以显示枚举的工作原理以及为什么需要该属性:

>>> import enum
>>> class MyEnum(enum.Enum):
... FIRST = 'first'
... SECOND = 'second'
...
>>> MyEnum.FIRST
<MyEnum.FIRST: 'first'>
>>> MyEnum.FIRST.value
'first'

关于python - 如何在 jinja2 selectattr 过滤器中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48905380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com