Django注册标签库不起作用

时间:2017-05-30 14:53:53

标签: python django templatetags

我尝试在django中注册我的自定义模板标记库,但不幸的是它无法正常工作!

我想创建一个自定义include-tag并按照以下说明操作: https://docs.djangoproject.com/en/1.11/howto/custom-template-tags/#howto-custom-template-tags-inclusion-tags

我创建了一个名为'tag_lib'的应用程序(安装在settings.py中)以放入我的模板标签。在app文件夹中有一个名为'templatetags'的字典,其中包含空__init__.py和我的{{1 }}

my_tags.py包含:

my_tags.py

当我重新启动我的devserver并尝试使用

加载库时
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 %} `

我知道哪里弄错了?

感谢。

3 个答案:

答案 0 :(得分:4)

我遇到了这个问题。我做的只是停止服务器运行并再次运行它。似乎django在运行server.hope时没有初始化标签(或一般资源)它有帮助。

答案 1 :(得分:3)

根据Django文档:

开发服务器不会在添加templatetags模块后自动重启,您需要先重新启动服务器,然后才能使用模板中的标记或过滤器。

因此,要解决此问题,您需要重新启动开发服务器。

来源:https://docs.djangoproject.com/en/3.0/howto/custom-template-tags/#code-layout

答案 2 :(得分:0)

提醒一下,在Windows下使用django时,必须至少在以下两种情况下重新启动开发服务器(python.exe manage.py runserver):

  • 在应用中创建新模板标签时
  • 在“ app / static / app /”文件夹中修改静态文件时

希望这会有所帮助