将字典发送给神社时,如何从键中获取价值

时间:2019-02-12 22:26:47

标签: python django jinja2

我将字典-内容-发送到看起来像这样的模板。内部内容是多个词典。其中一个名为like_dict,其外观如下:{1:18} {2:14} {3:15},另一个名为info,它保存我的用户ID。我使用以下代码对其进行排序:

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

除段落标记中的部分外,其他所有内容似乎都可以正常工作。当我用我的ID号替换x.id时(例如:like_dict.1),它会输出'18'。当我将其保留为示例中的示例(like_dict.x.id)时,它会在like_dict中找到x.id,但仅显示“ value is:”,而未说明字典值。当我尝试执行此操作时-like_dict [1]-使用方括号时出现错误。有人可以指导我如何在密钥与我的ID匹配时只打印值吗?

2 个答案:

答案 0 :(得分:0)

您应该使用方括号来访问字典的可变键值:

<p> the value is: {{ like_dict[x.id] }} </p>

答案 1 :(得分:0)

在您遇到的情况下,我会尝试使用“ with”关键字将x.id存储在模板中的变量中。

  {% 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 %}

警告:这是一个非常肮脏的解决方案。