2013-03-01 48 views
1

我正在尝试创建自定义过滤器,并且我已经按照Django文档中的步骤操作。 然而,当我打开加载了以下错误抛出的过滤模板:'custom_filters'不是有效的标签库

'custom_filters' is not a valid tag library 

...它指的是线下的模板:

1 {% extends 'shared/base.html' %} 
2 {% load custom_filters %} <--- the error 
3 
4 {% block title %} 
5  Showing project {{project}} 
6 {% endblock %} 

文件结构:

project/ 
    ... 
    ... 
    models.py 
    views.py 
    templates/ 
    templatetags/ 
     __init__.py 
     custom_filters.py 

custom_filters.py:

from django import template 
register = template.Library() 

@register.filter(name='ownership') 
def ownership(project, user): 
    return project.added_by_user == user 

因此,由于某种原因,Django无法找到custom_filters文件,因为它看起来,即使我已经做了所有事情(据我所知)。

我在做什么错?

注意:当然,我试过重新启动服务器。

+0

这是在应用程序中?包含自定义标签的应用必须位于INSTALLED_APPS中。 – 2013-03-01 13:18:11

回答

1

模板标签文件夹必须是模板文件夹,views.py,models.py,旁...

//Don't forget also to put __init__.py outside the templatetags, 

@register.simple_tag 
def ownership(project, user): 
    return project.added_by_user == user 
0

如果你的应用程序名称是MyApp和你的标签文件夹名是templatetags然后settings.py你应该有:

INSTALLED_APPS = [ 
'MyApp', 
'MyApp.templatetags' 

]

无论您app和你tag folder这是你的应用程序包 Django项目在那里需要。

-> MyApp 
    ---> models.py 
    ---> views.py 
    ---> templatetags 
     -----> __init__.py 
     -----> app_filters.py 
相关问题