【发布时间】:2011-05-23 23:02:36
【问题描述】:
我的 Django 项目中有一个 python 文件,其中包含一个自定义模板标签和一个自定义模板过滤器。
我的自定义标签使用template.loader.get_template() 加载另一个模板文件。这很好用...直到我将自定义过滤器添加到加载的模板中。
现在我得到一个 Django“无效过滤器”TemplateSyntaxError 异常。查看调用堆栈,Django 无法加载我的模板过滤器。
这就是事情变得奇怪的地方。我可以使用来自另一个模板的自定义过滤器。我可以在自定义标签加载的模板中使用任何其他过滤器。但是我不能在我自己的自定义标签中使用我自己的过滤器。
这种情况的明显原因是没有在我的模板 HTML 中加载我的自定义标签/过滤器文件,但我正确地加载了它。 (因为当我不加载它时,我会得到一个不同的错误——“invalid block tag”)
我在 Python 2.7 上运行 Django 1.2.3。
[顺便说一句,我自己终于找到了答案,但我花了几个小时,我无法在 stackoverflow 或谷歌的任何地方找到答案,所以我将回答我自己的问题,以便其他人不会像我那样浪费太多时间]
【问题讨论】:
标签: python django django-templates django-template-filters