У меня есть приложение для статей, и я пытаюсь создать собственный фильтр, у меня есть каталог с названием templatetags в приложении статьи и tags.py внутри этого каталога, вот структура каталогов.
-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%} и использую настраиваемый фильтр в индексе .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
article / 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