1

我有一个要加载到模板中的模板过滤器。

模板位于:

- userprofile/
  - templatetags/
    - __init__.py
    - extras.py

用户配置文件在我安装的应用程序中,它似乎正确导入了附加内容。

我在 extras.py 中的模板标签是:

register = template.Library()

@register.filter
def minutes_seconds(seconds):
    """
    Format a time in seconds in the MM:SS form.
    """
    return '{:02}:{:02}'.format(int(seconds) / 60, int(seconds) % 60)

在我的 django 模板中,我正在做:

{% extends 'base.html' %}
{% load extras %}
...
{{ items|minutes_seconds }}

但这爆炸了,我得到了一个TemplateSyntaxError: Invalid Filter. 这似乎是一个非常低级别的错误,因为我可能会在模板中导致其他错误(例如,删除一个{% for %}标签,否则它会引发错误),但它似乎TempalteSyntaxError几乎在页面渲染之前触发了这个。这里出了什么问题?

4

1 回答 1

3

检查目录“userprofile/templatetags/”,是否有为 init.py 和 extras.py 编译的 python 文件?

如果那里没有编译文件,则意味着 python 没有访问 templatetags 目录。确保该目录中有 init.py 文件,然后重新启动服务器并再次检查 .pyc 文件。

于 2012-06-06T06:27:33.443 回答