我有一个python字典:
settings = {
"foo" : "baz",
"hello" : "world"
}
此变量settings
随后可在Jinja2模板中使用。
我想检查模板中myProperty
字典中是否存在密钥settings
,如果是,请采取一些措施:
{% if settings.hasKey(myProperty) %}
takeSomeAction();
{% endif %}
我可以使用的hasKey
相当于什么?
答案 0 :(得分:95)
像Mihai和karelv所说,这有效:
{% if 'blabla' in item %}
...
{% endif %}
如果我使用'dict object' has no attribute 'blabla'
并且{% if item.blabla %}
不包含item
密钥,则会收到blabla
答案 1 :(得分:13)
这个工作正常在涉及字典的情况下不起作用。在这些情况下,请查看tshalif的答案。
否则,使用SaltStack(例如),您将收到此错误:
Unable to manage file: Jinja variable 'dict object' has no attribute '[attributeName]'
如果你使用这种方法:
{% if settings.myProperty %}
注意强>:
如果settings.myProperty
存在,也会跳过,但评估为False
(例如settings.myProperty = 0
)。
答案 2 :(得分:6)
您可以通过以下方式测试键定义:
{% if settings.property is defined %}
#...
{% endif %}