Включение элементов словаря в оператор Jinja2 If / elif - PullRequest
0 голосов
/ 28 ноября 2018

У меня проблемы с отображением словарных данных в Jinja2.

У меня есть две разные переменные словаря.cinfo['cbs'] содержит данные из пользовательского ввода.Я был в состоянии представить эти данные.Другой находится в пределах pdata, хотя я не смог отобразить эти данные.

Текст будет отображаться под ".leftcell" td, но данные на ".rightcell" td выглядят пустыми.Я бы хотел, чтобы джинджа полностью пропустил блок, если обе переменные словаря содержат пустые строки.

Для контекста - вот моя потоковая команда:

template.stream(cinfo=cinfo,  pdata = pdata)

Ниже приведен словарь "pdata"структура данных:

pdata = {'Building Size': {'Data': '28,106 SF'}}

и мой код jinja2:

      <!DOCTYPE html>
<html lang="en">

<body lang="en-US">
  <div id="propertyinfo">
    <table id="pitable" cellspacing="0">
      <tbody>


        {% if cinfo['cbs'] != "" %}
        <tr>
          <td class="leftcell">
            Building Size
          </td>
          <td class="rightcell">
            {{cinfo['cbs']}}
          </td>
        </tr>
        {% elif pdata["Building Size"]["Data"] != "" %}
        <tr>
          <td class="leftcell">
            Building Size
          </td>
          <td class="rightcell">
            {{pdata["Building Size"]["Data"]}}
          </td>
        </tr>
        {% endif %}

      </tbody>
    </table>
  </div>
</body>

</html>

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 28 ноября 2018

Попробуйте pdata следующим образом, только чтобы избежать пробелов

pdata = {'Building_Size': {'Data': '28,106 SF'}}

и доступа к содержимому dict с помощью "."

  {% if cinfo.cbs != "" %}
  <tr>
                <td class="leftcell">
                    Building Size
                </td>
                <td class="rightcell">
                    {{cinfo.cbs}}
                </td>
            </tr>
  {% elif pdata.Building_Size.Data != "" %}
  <tr>
                <td class="leftcell">
                    Building Size
                </td>
                <td class="rightcell">
                    {{pdata.Building_Size.Data}}
                </td>
            </tr>
  {% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...