Как получить значение из ключа при отправке словаря в jinja - PullRequest
0 голосов
/ 13 февраля 2019

Я отправляю свой словарь - контент - шаблону, который выглядит следующим образом.Внутри контента находится несколько словарей.Один из них называется like_dict, который выглядит следующим образом: {1: 18} {2: 14} {3: 15}, а другой - info, в котором содержится мой идентификатор пользователя.Я использую этот код для сортировки:

{% for x in info %}
{% if x.id in like_dict %}
<p> the value is: {{ like_dict.x.id }} </p>
{% endif %}
{% endfor %} 

Кажется, все работает, кроме части внутри тегов абзаца.Когда я заменяю x.id номером моего идентификатора (например: like_dict.1), он печатает «18» просто отлично.Когда я оставляю его как есть в примере (like_dict.x.id), он находит x.id в like_dict, но выводит только «значение:» без указания значения словаря.Когда я пытаюсь сделать это - like_dict [1] - я получаю ошибку при использовании скобок.Может кто-нибудь подсказать мне, как мне будет печатать только значение, когда ключ соответствует моему идентификатору?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

В вашей ситуации я бы попытался сохранить x.id в переменной внутри шаблона, используя ключевое слово «with».

  {% for x in info %}
    {% for k, v in x.items %}
      {% if k == 'id' %}
        {% if v in like_dict %}
          {% for key, value in like_dict.items %}
            {% if key == v %}
              <p>The value is: {{ value }}</p>
            {% endif %}
          {% endfor %}
        {% endif %}
      {% endif %}
    {% endfor %}
  {% endfor %}

Предупреждение: Это очень грязное решение.

0 голосов
/ 13 февраля 2019

Вы должны использовать квадратные скобки, чтобы получить доступ к значению переменной ключа dict:

<p> the value is: {{ like_dict[x.id] }} </p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...