python - django 模板中的多个加载标签

目录结构

app_one
    templatetags
        __init__.py
        filter_one.py
app_two
    templates
        app_two
            template_one.py
    templatetags
        __init__.py
        filter_two.py

filter_one.py中有一些过滤器,filter_two.py中也有一些过滤器。并且 template_one.html 中这些过滤器的每次使用都有效。

然后我在 filter_one.py 中又添加了两个过滤器

filter_one.py

@register.filter
def f1(val):
    return val['evaluations'][0]['range']

@register.filter
def f2(val)
    return val['evaluations'][1]['data-type']

template_one.html

{% load filter_one %}
{% load filter_two %}
{{ value | f1 }}

这会产生错误“无效过滤器:f1”。

但是当我将模板移动到 filter_two.py 时它会起作用

想不通背后的逻辑!

最佳答案

您实际上不需要编写.py,与通常的python 模块导入相同。只需按如下方式编写您的代码:

{% load filter_one %}
{% load filter_two %}

如果你想节省一些行,你实际上可以在一行中加载标签,模块名称以空格分隔:

{% load filter_one filter_two %}

https://stackoverflow.com/questions/40465077/

相关文章:

spring-boot - 我如何在 Spring Boot-1.4.1-RELEASE 中制作 i

angular - 如何检测下拉列表元素的变化?

php - 如何使用 laravel 5.2 获取 Blade 文件(HTML)中的最后一部分 ur

git - 如何直接从 Google Cloud Source Repository 部署到 Goo

math - 围绕一个点旋转 Vector2

javascript - 如何将 JSON/Bootstrap-Table 中的日期转换为 DD/M

php - 使用干预将图像的 DPI 从 72 更改为 300

asp.net - 时间的 DataFormatString (ASP.Net)

SQL Server - 如果列包含值,则按 ID 分组

angular - 在 Angular2 中,您如何检测过滤器/管道未返回任何结果