我已经设法通过使用自定义过滤器从jinja2调用python函数,但我似乎只能用一个或多个参数调用函数。在下面,我必须传递一个垃圾参数才能将ctest作为一个函数而不是一个变量。如何调用jinja2模板中没有参数的python函数
如果我打电话给{{ ctest() }}
,它也不起作用。
是否有不同的方式强制这是一个函数调用,或者我应该使用不同的方法?
代码:
def ctest(stuff):
return "yeah!"
template_env = jinja2.Environment (loader = jinja2.FileSystemLoader(template_file_root))
#custom filters
template_env.filters['ctest'] = ctest
模板:
Working? {{ junk|ctest }}
输出:
working? yeah!
可能重复[调用从Jinja2的一个Python函数(http://stackoverflow.com/questions/6036082/call-a-python-function-from-jinja2) – geoffspear 2012-07-25 19:41:22
我在发布之前查看了这个问题,但并未解释如何在不带参数的模板中调用过滤器。它只是解释了如何达到我已经在的程度。 – chrisst 2012-07-25 21:00:09
看到第二个答案:'{{clever_function()}}' – geoffspear 2012-07-25 22:40:04