1. ホーム
  2. jinja2

[解決済み] Jinja2 テンプレート変数 if None オブジェクトにデフォルト値を設定する

2022-04-13 14:07:46

質問

jijna2の変数で、オブジェクトがNoneの場合、デフォルトを""にするにはどうすればよいですか?

      {% 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'

解決方法は?

を使用します。 none テスト (Pythonの None オブジェクト !):

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

または

{{ p.User['first_name'] if p is not none else 'NONE' }}

または、空の文字列が必要な場合。

{{ p.User['first_name'] if p is not none }}