Eric wrote:
> We recently started upgrading from jinja to jinja2 and ran into a
> rather large road block.  Basically, in jinja2 templates rendered via
> {% include %} do not have access to variables defined in the parent
> template.
>
> So the following would print nothing:
>
> # parent template
> {% for value in values %}
>   {% include "test_include" %}
> {% endfor %}
>
> # test include
> {{ value }}
>
>
> Was this change in behavior intended when writing jinja2?
>
>
> Here is a complete test case which compares jinja (which works as
> expected) and jinja2:
>
>
> def testTemplate ():
>   return '''
>   {% for value in values %}
>     <div>Value in main: {{ value }}</div>
>     {% include "test_include" %}
>   {% endfor %}
>   '''
>
>
> def testInclude ():
>   return '<div>Value in include: {{ value }}</div>'
>
>
> def load (name):
>   if name == 'test_include':
>     return testInclude()
>   return testTemplate()
>
>
> def testJinja ():
>   from jinja import Environment, FunctionLoader
>   j = Environment(loader=FunctionLoader(load))
>   print j.get_template('test').render(values=['one', 'two', 'three'])
>
>
> def testJinja2 ():
>   from jinja2 import Environment, FunctionLoader
>   j2 = Environment(loader=FunctionLoader(load))
>   print j2.get_template('test').render(values=['one', 'two', 'three'])
>
>
> print '############ Test Jinja ############'
> testJinja()
>
> print '############ Test Jinja2 ############'
> testJinja2()
>   

Hi, I think you want

{% include "test_include" with context %}

See: http://jinja.pocoo.org/2/documentation/templates#import-context-behavior



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pocoo-libs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pocoo-libs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to