2013-03-01 23 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 
相關問題