Django:嵌套自定义模板标签

3 投票
1 回答
1502 浏览
提问于 2025-04-17 05:02

我在Django里写了两个自定义模板标签。我的目标是把一个自定义标签放在另一个标签里面使用。这这样做可以吗?

自定义“外部”标签的模板看起来是这样的:

<ul>
    {% for type in types %}
         {% custom_internal_tag param1 %}
    {% endfor %}
</ul>

渲染后结果是:

无效的块标签:'custom_internal_tag',期待的是'empty'或'endfor'

可以嵌套自定义标签吗?出现这种错误的原因是什么呢?

1 个回答

9

这些自定义标签是绝对可以使用的,但如果出现错误,可能是因为你的自定义标签没有正确定义、放置或者加载。

确保你所有的自定义标签都放在 app/templatetags 这个文件夹里,并且正确加载,通常是通过使用 @register 装饰器来实现的。

参考链接: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#registering-custom-filters

撰写回答