Как установить аргументы ключевых слов в пользовательских фильтрах JINJA2? - PullRequest
0 голосов
/ 20 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...