Я получаю сообщение об ошибке " TemplateAssertionError: нет фильтра с именем '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}}
Как это происходит?
Есть ли экземпляр среды по умолчанию, который мы должны использовать?