2010-10-21 22 views
18

Existe-t-il une méthode permettant à jinja2 de déclencher une exception lorsque nous transmettons une variable qui n'est pas présente dans le modèle? PS: Cela est différent (ou opposé) de déclencher une exception lorsqu'une variable est présente dans le modèle mais qu'elle n'est pas transmise. Pour cela, je l'utilise « = non défini StrictUndefined »déclenche une exception dans jinja si nous transmettons une variable qui n'est pas présente dans le modèle

Répondre

12

Peut-être que cela pourrait vous aider à 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']) 
14

Lorsque vous chargez votre jinja2.Environment, définissez le paramètre « indéfini » à « jinja2.StrictUndefined », par exemple:

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

Vous pouvez attraper et examiner l'exception rendre à voir ce qui manque

EDIT Il serait utile si je lis votre question complète. :)