如何在JINJA2自定义过滤器中设置关键字参数?

时间:2019-03-20 13:32:36

标签: python jinja2

我正在为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?

0 个答案:

没有答案