【发布时间】:2011-08-02 11:40:20
【问题描述】:
免责声明:这是来自my previous question 的后续问题。
我正在尝试在 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,并将其用作我正在定义的节点的渲染函数的输出。我的希望是,当在模板上调用 render 时,它只需要渲染这个节点,因为我的模板标签已经完成了其他所有内容的编译。目的是将 extends_mako 标记作为树中的最终标记。
我已经进行了一些快速的 pdb.set_trace 调查,但到目前为止我看不到任何帮助。
所以;是否可以使用传递给模板标签的解析器对象来编译模板并检索最终呈现的输出?
【问题讨论】:
-
删除了包含 Mako 标签的编辑。这个问题的答案不涉及 Mako。它明确地是关于使用 django 模板标签来呈现 django 模板的当前总输出。