Я работаю над определением пользовательского фильтра для JINJA в python 2.7. Я добавил пользовательский фильтр в 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()
метод, чтобы установить конкретные аргументы ключевых слов для конкретных ключевых слов в тексте?