Динамически создавать переменные в Jinja2 для цикла - PullRequest
0 голосов
/ 20 января 2019

Внутри цикла for я перебираю список словарей, и, если выполняются определенные условия, присваиваю новую переменную со значением определенного ключа словаря. Если эта переменная существует, я хочу, чтобы ее значение было присвоено полю ввода. Пример следующим образом:

{% for month in months %}

{% for value in values %}
    {% if value.condition_1 == 'Condition1' %}
        {% if value.condition_2 == 'Condition2' %}

             {% {{ month }}_value_present = value.month_value %}      <<< This line here

        {% endif %}
    {% endif %}
{% endfor %}

{% if {{ month }}_value_present %}     <<< This line here
    <input type="text" name="value_weighting_{{ month }}" class="modal-month-boxes" value="{{ {{ month }}_value_present }}">
{% else %}
    <input type="text" name="value_weighting_{{ month }}" class="modal-month-boxes">
{% endif %}

{% endfor %}

Этот подход выдает мне следующую ошибку, которая возникает из тега {{ month }}:

jinja2.exceptions.TemplateSyntaxError: ожидается имя тега

Как правильно динамически создавать переменные таким образом?

1 Ответ

0 голосов
/ 20 января 2019

{% if {{ month }}_value_present %} сбой, потому что анализ задыхается. Как насчет того, чтобы попытаться создать строковую переменную, а затем сделать что-то хакерское, например, использовать locals() или getattr для доступа к этому значению?

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