我正在为python 2.7中的JINJA定义自定义过滤器。我在JINJA env中添加了自定义过滤器,如下所示:
JINJA.filters['extra'] = extra_handler
我正在使用的关键字可能如下所示:
{{customer_name|extra}}
我为“额外”定义了一个功能。即
def extra_handler():
return customer_name + task.name
在这里,task
必须是extra
的关键字参数,但是它的值不是静态的。它可能会根据各种条件而变化。因此,无论何时调用,我都希望将动态设置的task
传递给extra
。那怎么可能。
另外,请注意,我正在按以下方式制作JINJA模板:
template = JINJA.from_string(text)
parsed_content = JINJA.parse(text)
keyword_list = meta.find_undeclared_variables(parsed_content)
keyword_dict = keyword_generator.get_keyword_values(keyword_list, ignore_styling)
content[key] = template.render(keyword_dict)
text
实际上包含我所有的关键字,即{{customer_name|extra}}
和许多其他关键字。有什么方法可以告诉JINJA.from_string()
方法为文本中存在的特定关键字设置特定关键字args?