Вопрос по Jinja2 шаблон у
Собрал следующий шаблон
{% set operations = operations or [] %}
{% set search_key = ['to', 'from', 'description'] %}
{% set comma = joiner(',') %}
[
{% for operation in operations %}
{% set data = {'id': operation.id, 'state': operation.state, 'date': operation.date} %}
{% for k, v in operation.items() %}
{% if k in search_key %}
{{ data.update({k: v}) }}
{% endif %}
{% endfor %}
{{ comma() }}
{{ data|tojson }}
{% endfor %}
]
Он обрабатывает следующий объект:
"operations": [
{
"id": 3216421913,
"state": "STATE",
"date": "2020-07-20",
"description": "Тест",
"operation": {},
"type": "payment",
"form": "Test_Form"
}
]
Но в результат не попадают поля которые добавляю в условии
{% for k, v in operation.items() %}
{% if k in search_key %}
{{ data.update({k: v}) }}
{% endif %}
{% endfor %}
Подскажите в чем может быть проблема?
Ответы (1 шт):
Автор решения: alex
→ Ссылка
В первой строке, ты учитываешь ситуацию при которой operations может быть пуст. А значит тебе как то требуется проверить что он не пуст)
наверное можно попробовать как-то так. чтобы убедиться что проблема не там где ты ее ищешь.
{% set operations = operations or [{'id': 'NOT ID', 'state': 'NOT STATE', 'date': 'NOT DATE'}] %}
или выведи себе operation до set data, чтобы убедиться что у тебя operations это действительно список словарей. а не словарь, потому что словарь это тоже итерабельный объект.