在GAE上为jinja2添加自定义过滤器

ken*_*ong 8 customization google-app-engine jinja2

我需要为jinja2添加一个非常简单的过滤器.基本上,如果它是正数,它需要一个数字并附加一个'+'.我按照jinja2文档关于如何添加自定义过滤器,但它似乎不起作用(在GAE上).

蟒蛇:

def str_votes(votes):
    if votes > 0:
        return '+' + str(votes)
    else:
        return str(votes)

# jinja2 stuff
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
                               autoescape=True)
jinja_env.globals['str_votes'] = str_votes
Run Code Online (Sandbox Code Playgroud)

HTML(用于呈现的页面):

<div>{{ 123|str_votes }}</div>
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误: TemplateAssertionError: no filter named 'str_votes'

我该如何解决?(这里有类似的问题从未得到解答.)

vos*_*usa 8

您必须注册过滤器.就像是:

jinja_env.filters['str_votes'] = str_votes
Run Code Online (Sandbox Code Playgroud)