免责声明:这是关于my previous question的问题。如何在django的模板标签中获取模板的渲染输出?
我试图在Django中编写一个模板标签,它将呈现自己在Mako模板的主体内。我不确定这是否可以实现,但这对我的项目非常有用,可能还有很多其他人在Django中使用Mako模板。
这里是我的标签定义:
def extends_mako(parser, token):
# wishlist below, this code does not work but it's what I want to achieve
template_html = ''
while (node = parser.nodelist.pop()):
template_html += node.render()
是解析器对象能够呈现整个树到这一点的?我现在唯一的想法是使用解析器对象来渲染(并从树中移除)此节点之前的每个节点。然后,我会将输出传递给Mako以呈现为HTML,并将其用作我正在定义的节点的渲染函数的输出。我的希望是,当模板上调用渲染时,它只需要渲染这个节点,因为我的模板标签已经完成了其他所有的编译。目的是将extend_mako标记作为树中的最终标记。
我已经做了一些快速的pdb.set_trace调查,但我看不到任何有助于到目前为止。
所以;是否有可能使用解析器对象,传递给模板标签,编译模板,并检索最终的渲染输出?
删除了包含Mako标记的编辑。这个问题的答案不涉及Mako。它明确地使用django模板标记来呈现django模板的当前总输出。 – 2011-04-11 00:13:04