【问题标题】:loading custom tag filters from another app从另一个应用程序加载自定义标签过滤器
【发布时间】:2023-04-02 15:12:02
【问题描述】:

我真的很困惑如何从另一个应用程序加载自定义标签过滤器。 我有类似的问题Load custom template tag from another application? 而且,我正在以相同的方式执行此操作,但仍然无法加载,并且出现此错误:

TemplateSyntaxError at /
'fillme_tag' is not a valid tag library: Template library fillme_tag not found, tried django.templatetags.fillme_tag,django.contrib.staticfiles.templatetags.fillme_tag,fillme.templatetags.fillme_tag

我在设置中也安装了该应用程序。 我尝试使用如下所述的各种方式加载它: {% 加载 fillme_tag %} {% load fillme.fillme_tag %} #filleme 是应用名称。

结构如下:

my_project:
    app1:
        templates:
            index.html (this is where i want to load custom tag)
        views.py
        __init__.py
    fillme:
        templatetags:
            __init__.py
            fillme_tag.py (the tag lib)
        __init__.py

-----fillme_tag.py 的内容----

from django import template

register = template.Library()

@register.filter(name='demotag')
def demotag(value):
    return value

【问题讨论】:

  • 可以添加fillme_tag.py的内容吗?
  • 刚刚编辑了我的问题并添加了它:)
  • 是的,它在设置中的INSTALLED_APPS中
  • 在您复制的错误消息中,我们可以看到fillme.templatetags.fillme_tag,因此它试图打开它但失败了,因为它在fillme.templatetags.fillme_tag 中找不到有效的Library。你能检查一下那个文件里有没有错字吗?
  • 对,文件名有错别字,被命名为filleme_tag.py,而不是fillme_tag.py。请在下面编辑您的答案并将此评论放在那里,我会将其标记为正确答案!谢谢:)

标签: django django-templates django-1.5 django-filter


【解决方案1】:

您似乎错过了fillme/__init__.py。添加它,这必须工作:

{% load fillme_tag %}

更新

正如错误消息所说,它无法打开 fillme_tag,因为它是无效的库。我猜你在某个地方有错字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多