jinja2 Пользовательский фильтр «TemplateAssertionError: нет фильтра с именем« format_number »»

Я получаю ошибку « TemplateAssertionError: no filter с именем« format_number »при попытке зарегистрировать собственный фильтр в среде шаблонов, обновив фильтры dict в среде.

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

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

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

Обновить

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

Постановили

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

 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 

One Solution collect form web for “jinja2 Пользовательский фильтр «TemplateAssertionError: нет фильтра с именем« 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 
  • Как сделать Jinja2 конвертировать все исключения UndefinedError в пустые строки?
  • Получение параметра запроса в Jinja2
  • Каков наилучший способ отключить кэширование шаблонов Jinja2 в файле bottle.py?
  • Вызовите функцию python с помощью HTML
  • Jinja2 и Flask: передать переменную в родительский шаблон, не передавая ее детям
  • Сохранять изображение, сохраненное в столбце LargeBinary SQLAlchemy
  • Jinja 2 - Django Form: рендеринг кодирует HTML
  • Получение VARCHAR (80) из db вместо псевдонима
  • Python - лучший язык программирования в мире.