【发布时间】:2023-04-05 06:06:01
【问题描述】:
我有一个模板过滤器正在加载到我的模板中。
模板在:
- 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页面甚至被渲染。这里出了什么问题?
【问题讨论】:
-
检查目录“userprofile/templatetags/”,是否有为init.py和extras.py编译的python文件?
-
format函数仅适用于 Python 2.6+。您可以使用旧版本吗? -
@zubair89 实际上没有那里没有编译的文件(它们是我在提示中手动导入它创建的)。所以答案是否定的
-
@DanielRoseman 不,我使用的是 2.7
-
如果里面没有编译过的文件,那就意味着 python 没有访问 templatetags 目录。确保该目录中有 init.py 文件,然后重新启动服务器并再次检查 .pyc 文件。