【问题标题】:Template Filter crashing模板过滤器崩溃
【发布时间】: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 文件。

标签: django django-templates


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-11-05
    • 2019-03-08
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多