에서 정의되지 않은 속성에 대한 예외를 발생 :jinja2
jinja2.Template("Hello {{ a.x }}").render(a={})
Jinja2는 자동으로 a.x
에 대해 빈 문자열을 반환, 그래서 이것은 "안녕하세요"로 렌더링합니다.
정의되지 않은 속성에 대해 jinja2에서 예외를 발생 시키려면 어떻게해야합니까? 그 행동이 기능 때문에
에서 정의되지 않은 속성에 대한 예외를 발생 :jinja2
jinja2.Template("Hello {{ a.x }}").render(a={})
Jinja2는 자동으로 a.x
에 대해 빈 문자열을 반환, 그래서 이것은 "안녕하세요"로 렌더링합니다.
정의되지 않은 속성에 대해 jinja2에서 예외를 발생 시키려면 어떻게해야합니까? 그 행동이 기능 때문에
문서에 따르면, 당신은 할 수 없습니다 볼 here
내가 무엇을 할 것은 파이썬 방법으로 더 많은 동작하며 경우에 KeyError
을 제기 사용자 정의 필터를 작성하는 것입니다. 예외 올릴 것이다
jinja2.Template("Hello {{ a|myget('x') }}").render(a={})
from jinja2 import Template, StrictUndefined
print Template("Hello {{ a.x }}", undefined=StrictUndefined).render(a={})
이 : 더 많거나 적은처럼 사용할 수 있습니다
뭔가 의도 한대로 당신이 도끼에 대한 값을 설정하면
File "<template>", line 1, in top-level template code
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'x'
는 다음 작동합니다 :
print Template("Hello {{ a.x }}", undefined=StrictUndefined).render(a={'x':42})
pr int :
Hello 42
올바른 '정의되지 않은'클래스를 선택하여 실제로 수행 할 수 있습니다 (내 대답 참조). – ascobol