相关疑难解决方法(0)

jinja2自定义过滤器"TemplateAssertionError:没有名为'format_number'的过滤器"

我得到了" TemplateAssertionError:无过滤器命名为'format_number’ "的错误,试图通过更新过滤器对环境的字典登记在模板环境自定义过滤器时.

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

from jinja2 import environment 
Run Code Online (Sandbox Code Playgroud)

在我的课上,我定义了以下方法:

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 ...
Run Code Online (Sandbox Code Playgroud)

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

{{top_five_url .total|format_number}}
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

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

python environment filter jinja2

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

environment ×1

filter ×1

jinja2 ×1

python ×1