gpt4 book ai didi

python - Django:如何从模板中获取 block ?

转载 作者:太空狗 更新时间:2023-10-29 21:17:55 30 4
gpt4 key购买 nike

假设我的模板中有类似 {% block subject %}my subject{% endblock %} 的东西,我用 tmpl = loader.get_template('mytemplate.html '),如何提取“我的主题”?

最佳答案

当您的模板扩展基础时,Camilo 的解决方案不起作用。我对其进行了一些修改以(希望)解决该问题:

from django.template import Context
from django.template.loader import get_template
from django.template.loader_tags import BlockNode, ExtendsNode

def _get_node(template, context=Context(), name='subject'):
for node in template:
if isinstance(node, BlockNode) and node.name == name:
return node.render(context)
elif isinstance(node, ExtendsNode):
return _get_node(node.nodelist, context, name)
raise Exception("Node '%s' could not be found in template." % name)

我真的不确定这是否是递归遍历所有节点的正确方法......但它适用于我的有限情况。

关于python - Django:如何从模板中获取 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2687173/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com