django:过滤器无效

我有一篇文章应用程序,并尝试制作一个自定义过滤器,我在文章应用程序中有一个名为templatetags的目录,该目录中有一个tags.php,这里是目录结构.

-manage.py(f)
-settings.py(f)
-articles(d)
 - templatetags(d)
  - tags.py(f)

在模板上,文章有自己的目录,所有的文章模板都从一个base.html模板展开,这里是模板结构.

-base.html(f)
-articles(d)
 -index.html(f)

我在base.html {%load tags%}中加载标签,并在index.html中使用自定义过滤器,并得到无效的过滤器错误.

tags.py

from django import template                                                                                                                                                        
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def space2Dash(s):
    return s.replace(' ', '_');

我不知道我做错了什么

编辑:
我将过滤器名称更改为abcfilter.py,并在我的settings.py中加载了文章应用程序
文章/ index.html的

{% load abcfilter %}
 {{ "foo bar"|space2dash %}

错误:

Request Method: GET
Request URL:    http://localhost:8080/articles/
Django Version: 1.2.5
Exception Type: TemplateSyntaxError
Exception Value:    
Invalid filter: 'space2dash'
Exception Location: ***/lib/python2.7/django/template/__init__.py in find_filter, line 363
Python Executable:  /usr/local/bin/python
Python Version: 2.7.1
Server time:    Sun, 10 Apr 2011 07:55:54 -0500
替换后首先取出分号.

你有一个名为__init__.py的文件(这是假设在init之前和之后有两个下划线,难以在编辑器中格式化)在templatetags目录下?

如果您还没有看到,这里是一个很好的信息页面.

http://docs.djangoproject.com/en/dev/howto/custom-template-tags/

相关文章
相关标签/搜索