2013-07-02 8 views

risposta

1

Secondo la documentazione non è possibile, perché questo comportamento è una caratteristica: vedi here

Quello che vorrei fare è quello di scrivere un filtro personalizzato che si comporta più in un modo divinatorio e solleva un KeyError nel caso.

qualcosa che può essere utilizzato in modo più o meno come:

jinja2.Template("Hello {{ a|myget('x') }}").render(a={}) 
+1

In realtà può essere fatto selezionando la classe "non definita" corretta (vedere la mia risposta). – ascobol

7
from jinja2 import Template, StrictUndefined 
print Template("Hello {{ a.x }}", undefined=StrictUndefined).render(a={}) 

Questo solleva un'eccezione:

File "<template>", line 1, in top-level template code 
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'x' 

Se si imposta un valore per ascia allora funzionerà come previsto :

print Template("Hello {{ a.x }}", undefined=StrictUndefined).render(a={'x':42}) 

will pr int:

Hello 42