Django - 'helpers' 不是一个有效的标签库。

3

在按照自定义模板标签和过滤器教程时,我遇到了以下错误:

'helpers' is not a valid tag library: Template library helpers not found, tried django.templatetags.helpers,django.contrib.staticfiles.templatetags.helpers,django.contrib.admin.templatetags.helpers

我是一名有用的助手,可以为您翻译文本。

我看到了很多关于这个问题的问题,但是以下行动都没有解决它。

文件夹结构:

container/
  module/
    templatetags/
      __init__.py
      helpers.py
    templates/
      ...
    ... (views, models, ...)
  system/
    ... (urls, settings, ...)

system/settings.py 中,包含了该模块:
INSTALLED_APPS = (
    ...
    'module',
)

我的辅助程序源代码在django shell中没有触发任何语法或导入错误。
from django import template
register = template.Library()

@register.filter
def myhelper(value):
    return value

最后,调用myhelper的模板如下:
{% load helpers %}
{{ "hello"|myhelper }}

为什么它不起作用?

2
看起来你的系统找不到正确的模块。从错误信息来看,它说:django.templatetags.helpers、django.contrib.staticfiles.templatetags.helpers、django.contrib.admin.templatetags.helpers。它没有提到module.templatetags。你确定INSTALLED_APPS中的条目是正确的吗?当你运行模块应用程序时,还有其他东西可以工作吗? - Mikael
@Mikael:是的,我可以毫无问题地运行同一模块中的其他模板。 - ldiqual
这意味着 Django 找不到你的模块中的 templatetags - Priyank Patel
@PriankPatel:那么这里会有什么问题呢? - ldiqual
1
尝试为您的模板标签使用另一个名称。也许您已经在其他地方有一个名为“helpers”的目录。 - sergzach
显示剩余5条评论
1个回答

2
由于sergzach的建议,我将过滤器文件从helpers.py重命名为somethingelse.py后,成功让它工作了。

编辑

Django有自己的辅助函数用于生成管理员页面。这可能是命名冲突的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接