python辞書:
settings = {
"foo" : "baz",
"hello" : "world"
}
この変数settings
は、Jinja2テンプレートで使用できます。
キーmyProperty
がテンプレート内のsettings
dictに存在するかどうかを確認したい場合は、何らかのアクションを実行します。
{% if settings.hasKey(myProperty) %}
takeSomeAction();
{% endif %}
使用できるhasKey
と同等のものは何ですか?
Mihaiとkarelvが指摘したように、これは機能します:
{% if 'blabla' in item %}
...
{% endif %}
'dict object' has no attribute 'blabla'
使用する場合{% if item.blabla %}
およびitem
にはblabla
キーが含まれていません
この 正常に動作します 辞書を含む場合には機能しません。そのような場合は、tshalifによる回答をご覧ください。そうでない場合、SaltStack(たとえば)を使用すると、次のエラーが表示されます。
Unable to manage file: Jinja variable 'dict object' has no attribute '[attributeName]'
このアプローチを使用する場合:
{% if settings.myProperty %}
注:settings.myProperty
は存在しますが、False
として評価されます(例:settings.myProperty = 0
)。
この方法でキー定義をテストできます。
{% if settings.property is defined %}
#...
{% endif %}