199

このようなことをする代わりに、オブジェクトがNoneの場合、jijna2のデフォルトを "" にする方法は?

      {% if p %}   
        {{ p.User['first_name']}}
      {% else %}
        NONE
      {%endif %}

したがって、オブジェクト p が None の場合、p の値 (first_name と last_name) を "" にデフォルト設定します。基本的

nvl(p.User[first_name'], "")

受信エラー:

Error:  jinja2.exceptions.UndefinedError
    UndefinedError: 'None' has no attribute 'User'
4

12 に答える 12

95

ドキュメントによると、次のことができます。

{{ p|d('', true) }}

ブール値のコンテキストでNoneキャストを発生させます。False

于 2015-03-23T19:04:05.817 に答える
14

このドキュメントに従って、これをそのように行うことができます:

{{ p.User['first_name']|default('NONE') }}
于 2014-06-03T18:15:13.167 に答える
-1

Ansible 2.8 以降では、以下を使用できます。

{{ p.User['first_name'] }}

https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.8.html#jinja-undefined-valuesを参照してください

于 2019-06-15T14:59:03.957 に答える
-2

以下のフォームのように、変数に「デフォルトなし」を追加するだけです。

{{ your_var | default('NONE', boolean=true) }}
于 2020-12-29T07:40:59.550 に答える