1

我有这个项目:

app/
app/Items/
app/Management/
...

Management我有templatetags,我有我的整个项目的标签。

app/Management/templatetags/main_filters.py
app/Management/templatetags/__init__.py

在这个文件中,我有:

from django import template

register = template.Library()

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

然后在html模板中我有:

{%load main_filters%}
...
{{dataList|createmenu}}
...

和我进入 INSTALLED_APPS的settings.py :

...
"Management.templatetags",
...

最后我总是有下一个错误:

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

我已经尝试将它 ( ./Management/templatetags Folder) 放在文件夹ITEMS中并更改为settings.py, with Items.templatetags, 并且它可以工作。怎么了?

提前致谢。

4

1 回答 1

1

您可能希望在INSTALLED_APPS. templatetags只要{% load %}被调用,已安装应用程序内的模块就会自动加载。

此外,错误显示只检查了三个路径

...尝试 django.templatetags.main_filters、django.contrib.staticfiles.templatetags.main_filters、django.contrib.admin.templatetags.main_filters

然后我们可以得出结论,Management.templatetags.main_filters没有得到检查,通常有几个原因:

  1. __init__.py目录中的缺失templatetags。你有一个。
  2. Management未正确安装。案子。
  3. 奇怪的进口问题......幸运的是不是=)
于 2013-03-26T12:22:25.800 回答