Возможное опускание данного значения - PullRequest
1 голос
/ 21 октября 2019

У меня есть набор объектов данных, которые я передаю шаблону, и когда я отображаю шаблон, я хочу пропустить данную строку, если значение в массиве равно null.

Пример массива:

[
  { 
    'name': 'one'
    'place': 'high'
    'value': 'set'
  }
  {
    'name': 'two'
    'place': null
    'value': 'unset'
  }
  {
    'name': 'three'
    'place': 'low'
    'value': 'whyme'
  }
]

Пример шаблона:

{% for item in array %}
  - name: {{ item.name }}
    place: {{ item.place | default (omit) }}
{% endfor %}

Фильтр default(omit) работает не так, как я хочу. Он помещает строку «place:» в вывод без значения. Я хочу, чтобы строка "place:" вообще не появлялась на выходе.

Фактический вывод:

- name: one
  place: high
- name: two
  place:
- name: three:
  place: low

Желаемый вывод:

- name: one
  place: high
- name: two
- name: three
  place: low

1 Ответ

0 голосов
/ 21 октября 2019

Шаблон ниже делает работу

{% for item in array %}
  - name: {{ item.name }}
{% if item.place %}    place: {{ item.place }}
{% endif %}
{% endfor %}

дает

  - name: one
    place: high
  - name: two
  - name: three
    place: low

с правильно структурированными данными

array: [
  { 
      'name': 'one',
      'place': 'high',
      'value': 'set',
  },
  {
      'name': 'two',
      'place': null,
      'value': 'unset',
  },
  {
      'name': 'three',
      'place': 'low',
      'value': 'whyme',
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...