目录结构
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/