我通过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
变量。我该怎么办?
答案 0 :(得分:4)
好的,我自己的答案。
将jinja2.nodes.Name('a', 'load')
添加到此call_method
的{{1}}中,然后从上下文中加载它。
Extension