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
내장 함수를 사용하십시오 ( http://jinja.pocoo.org/docs/templates/#none ).
{% if p is not none %}
{{ p.User['first_name'] }}
{% else %}
NONE
{%endif %}
또는
{{ p.User['first_name'] if p != None else 'NONE' }}
또는 빈 문자열이 필요한 경우 :
{{ p.User['first_name'] if p != None }}
답변
{{p.User['first_name'] or 'My default string'}}
답변
문서 에 따르면 다음과 같이 할 수 있습니다.
{{ p|default('', true) }}
원인 None
에 캐스트 False
부울 맥락에서.
업데이트 : lindes가 언급했듯이 간단한 데이터 유형에만 작동합니다.
답변
다른 답변 외에도 variable이 None 인 경우 다른 것을 작성할 수 있습니다.
{{ variable or '' }}
답변
답변
“p”또는 “p.User”가 None 인 동안 예외가 발생하지 않도록하려면 다음을 사용할 수 있습니다.
{{ (p and p.User and p.User['first_name']) or "default_value" }}
답변
다른 솔루션으로 (이전 솔루션과 유사한 종류) :
{{ ( p is defined and p.User is defined and p.User['first_name'] ) |default("NONE", True) }}
마지막 변수 (p.User [ ‘first_name’])는 그 if defined
이후 에 테스트를 하지 않습니다 .