我尝试在Django中注册我的自定义模板标签库,但是不幸地它没有起作用!
我想创建一个自定义的include标签,并遵循以下说明:https://docs.djangoproject.com/en/1.11/howto/custom-template-tags/#howto-custom-template-tags-inclusion-tags
我创建了一个名为'tag_lib'的应用程序(已在settings.py中安装),以放置我的模板标签。在应用程序文件夹中有一个名为'templatetags'的字典,其中包含一个空的__init__.py
和我的my_tags.py
。
my_tags.py
包含:
from django import template
register = template.Library()
@register.inclusion_tag(filename='navbar.html', takes_context=True)
def navbar_context(context):
return {
'some_var': context['some_var'],
}
当我重新启动我的开发服务器并尝试加载库时
{% load my_tags %} `
在模板中,我遇到了错误:
``TemplateSyntaxError at /
'my_tags' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_static
admin_urls
cache
i18n
l10n
log
static
staticfiles
tz
有什么想法,我在哪里犯了错误吗?
谢谢。
templatetags
目录移出tag_lib
并移到您的“主应用程序”(无论它叫什么)目录中。这样可以让您知道是否有问题是由于您设置tag_lib
的方式不正确导致的。 - HenryMmy_tags
模块吗?使用命令./manage.py shell
,然后输入from tag_lib.templatetags import my_tags
。可能是因为某些原因(如语法错误等),你的模块会触发ImportError
错误... - bruno desthuilliers