On Sep 29, 10:33 am, Ali Afshar <[EMAIL PROTECTED]> wrote:
> 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

I tried that as well but it didn't help.  The docs seem to imply that
'with context' is the default behavior for {% include %}.

>From the docs:
Per default included templates are passed the current context...

--~--~---------~--~----~------------~-------~--~----~
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