вызвать исключение в jinja, если мы передали переменную, которой нет в шаблоне - PullRequest
21 голосов
/ 21 октября 2010

Есть ли у jinja2 метод для вызова исключения, когда мы передаем переменную, которой нет в шаблоне?

PS: это отличается (или противоположно) возникновению исключения, когда переменная присутствует в шаблоне, но не передана. Для этого я использую "undefined = StrictUndefined"

Ответы [ 2 ]

23 голосов
/ 03 июля 2012

Когда вы загружаете вашу jinja2.Environment, установите для параметра 'undefined' значение 'jinja2.StrictUndefined', например ::

env = jinja2.Environment(loader=<someloader>, undefined=jinja2.StrictUndefined)

Вы можете перехватить и изучить исключительную ситуацию рендеринга, чтобы увидеть, чего не было

РЕДАКТИРОВАТЬ Было бы полезно, если бы я прочитал ваш полный вопрос. :)

12 голосов
/ 31 мая 2011

Может быть, это может помочь вам http://jinja.pocoo.org/docs/api/#the-meta-api

>>> from jinja2 import Environment, meta
>>> env = Environment()
>>> ast = env.parse('{% set foo = 42 %}{{ bar + foo }}')
>>> meta.find_undeclared_variables(ast)
set(['bar'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...