Django标签/过滤器和模板

时间:2013-03-26 11:46:27

标签: python django django-templates

我有这个项目:

app/
app/Items/
app/Management/
...
<{1>} 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进行更改,并且可以正常使用。发生了什么事?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可能需要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没有得到检查,通常有几个原因:

  1. __init__.py目录中缺少templatetags。你有一个。
  2. Management未正确安装。案件。
  3. 奇怪的导入问题......幸运的是没有=)