我有这个项目:
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}}
...
和settings.py我已经进入INSTALLED_APPS:
...
"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
中用Items.templatetags
进行了更改,并且可以使用。怎么了?提前致谢。
最佳答案
您可能需要在INSTALLED_APPS
中使用“管理”而不是“ Management.templatetags”。只要调用templatetags
,就会自动加载已安装应用程序{% load %}
中的模块。
此外,该错误表明仅检查了三个路径
...尝试过django.templatetags.main_filters,
django.contrib.staticfiles.templatetags.main_filters,
django.contrib.admin.templatetags.main_filters
然后我们可以得出结论,Management.templatetags.main_filters
没有得到检查,通常有以下几个原因:__init__.py
目录中缺少templatetags
。你有一个。Management
未正确安装。案子。
奇怪的导入问题...幸运的是没有=)
关于python - Django标签/过滤器和模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15636313/