如何从Jinja的扩展中访问上下文变量?

时间:2012-08-27 09:05:37

标签: django jinja2 coffin

我通过coffin使用django + jinja2,我无法理解如何访问扩展中的上下文变量。例如,我有这个:

from coffin.shortcuts import render_to_response

def some_view(request):
    return render_to_response('template.html', {'a': 1})

class RenderFooExtension(Extension):
    tags = set(['render_foo'])

    def parse(self, parser):
        lineno = parser.stream.next().lineno

        # Some parsing process

        return nodes.Output([self.call_method('render'),]).set_lineno(lineno)

    def render(self):
        # TODO: I need to get here, for example, `a` object
        return ''

所以我需要在a方法中获取render变量。我该怎么办?

1 个答案:

答案 0 :(得分:4)

好的,我自己的答案。

jinja2.nodes.Name('a', 'load')添加到此call_method的{​​{1}}中,然后从上下文中加载它。

Extension