jinja2 Пользовательский фильтр "TemplateAssertionError: no filter named 'format_number'"

Я получаю ошибку "TemplateAssertionError: no filter named 'format_number'", когда пытаюсь зарегистрировать пользовательский фильтр в окружении шаблона, обновляя filters dict в окружении.

В моем модуле я импортировал модуль environment следующим образом:

from jinja2 import environment 

В моем классе я определил следующий метод:

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}}

Как это происходит?

Есть ли экземпляр среды по умолчанию, который мы должны использовать?

6
задан Lyndon White 11 October 2018 в 06:52
поделиться