Django:'tag'不是注册的标签库错误

Posted

技术标签:

【中文标题】Django:\'tag\'不是注册的标签库错误【英文标题】:Django : 'tag' is not a registered tag library errorDjango:'tag'不是注册的标签库错误 【发布时间】:2020-05-12 21:35:42 【问题描述】:

在我的模板中加载自定义标签时出现此错误。我访问过很多关于此的主题,并确保确认我没有犯一些常见错误:

包含标签的文件位于templatetags 文件夹中。 此templatetags 文件夹包含一个__init__.py 文件。 应用程序actualites 位于设置中的INSTALLED_APPS 列表中。 我在模板的开头使用了% load mes_tags %

这是我的应用程序的文件结构:

actualites/
    __init__.py
    SOME FILES
    templatetags/
        __init__.py
        mes_tags.py

mes_tags.py

from django import template

register = template.Library()

@register.simple_tag(takes_context=True)
def param_replace(context, **kwargs):
    d = context['request'].GET.copy()
    for k, v in kwargs.items():
        d[k] = v
    for k in [k for k, v in d.items() if not v]:
        del d[k]
    return d.urlencode()

我得到的错误如下:

TemplateSyntaxError at /
'mes_tags' is not a registered tag library. Must be one of:
LIST OF TAGS

谁能告诉我我做错了什么? 提前致谢!

【问题讨论】:

【参考方案1】:

您需要在设置中添加此标签库(对于 Django >= 1.9):

TEMPLATES = [

    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': 
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
            'app.apptemplates.load_setting',

        ],

        'libraries':
            'custom_templatetag': 'actualites.templatetags.mes_tags',

            
    ,
]

您可以阅读更多here

【讨论】:

以上是关于Django:'tag'不是注册的标签库错误的主要内容,如果未能解决你的问题,请参考以下文章

django 中的“TemplateSyntaxError at / 'humanize' 不是注册的标签库”

Django 3.0.8 'bootstrap' 不是注册标签库。必须是以下之一:

Django 1.10.1 'my_templatetag' 不是注册标签库。必须是以下之一:

/'staticfiles' 处的 Django TemplateSyntaxError 不是已注册的标签库。必须是以下之一: admin_list admin_modify admin_urls

django 'thumbnail' 不是一个有效的标签库:

TemplateSyntaxError 'apptags' 不是注册的标签库