gpt4 book ai didi

python - jinja2 自定义过滤器 "TemplateAssertionError: no filter named ' format_number'"

转载 作者:太空狗 更新时间:2023-10-29 22:23:35 26 4
gpt4 key购买 nike

尝试通过更新环境中的过滤器字典在模板环境中注册自定义过滤器时,出现“TemplateAssertionError: no filter named 'format_number'”错误。

在我的模块中,我导入了如下环境模块:

from jinja2 import environment 

在我的类(class)中,我定义了以下方法:

class DashboardHandler(SecurePageHandler):

def format_number(number):
s = '%d' % number
groups = []
while s and s[-1].isdigit():
groups.append(s[-3:])
s = s[:-3]
return s + ','.join(reversed(groups))

def do_get(self):
# ... snip ...
env = environment.Environment(self)
env.filters['format_number'] = self.format_number
# ... snip ...

在我的 html 模板文件中,我尝试按如下方式实现过滤器:

{{top_five_url .total|format_number}}

这是怎么回事?

是否有我们应该使用的默认环境实例?

最佳答案

我可以按如下方式解决我的问题,

在模块内部,我定义了我的方法并全局更新了过滤器字典,如下所示:

import jinja2

def format_number(number):
s = '%d' % number
groups = []
while s and s[-1].isdigit():
groups.append(s[-3:])
s = s[:-3]
return s + ','.join(reversed(groups))

jinja2.filters.FILTERS['format_number'] = format_number

关于python - jinja2 自定义过滤器 "TemplateAssertionError: no filter named ' format_number'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8339899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com