我试图在我的Django应用程序中创建自定义模板过滤器。我已经在我的应用程序下创建创建一个templatetags文件夹,添加一个__init__.py
文件,并与我的过滤器filters.py文件,像这样:Django无法找到我的自定义模板过滤器
import os
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def filename(pathname):
""" Returns the file's name, without folder """
return os.path.basename(pathname)
当我尝试从模板访问过滤器,我得到的错误“无效的过滤器‘名’”
这个问题已经被问了很多,所以我已经检查以下内容:
__init__.py
正确命名为- 与打开后壳我可以导入我的过滤器,像这样:
import app.templatetags
- 我也可以正常使用过滤器从Django的壳
- 我已经重新启动Django开发服务器。
- 我在调用
template.library()
时调用了一个断点 - 调试器并没有停在那里。
这里是模板(我已经删除其中的一部分,但在这个小版本错误仍然存在,以及)
<form enctype="multipart/form-data" action="{% url lab.views.new.artefact_drop_web tempfile_id=tempfile.id %}" method="post">
{% csrf_token %}
<h3>File:</h3>
<p>{{ tempfile.file.name|filename }}</p>
<input type="submit" value="Add" />
</form>
你能发布你的模板吗? – 2013-04-04 08:40:57
已发布。这当然是减少了模板的版本。 – zmbq 2013-04-04 08:48:29
我的疑惑是在创建templatetag文件后手动重新启动django服务器。伟大的事情总结检查! – scum 2015-06-10 16:56:20