Django Template双重嵌套遍历字典嵌字典:Need 2 values to unpack in for loop; got 6.

速览解决方案

不能仅使用Dict对象来获取信息,可能Dict对象里面有6个字段
然后应该使用Dict对象的 items 属性来获取key和value

{% for person, query_pics in data.person_list.items %}

原来的错误产生的写法(主要是第一行)

{% for person, query_pics in data.person_list %}
    <p>person : {{person}}</p>
    {% if person %}
        {% for picture in query_pics %}
            <img src="{{picture.file.url}}" alt="picture{{ forloop.counter }}" class="img-1" id="{{picture.name}}">
        {% endfor %}
    {% else %}
        <p>No this person</p>
    {% endif %}
{% endfor %}
</ul>

错误现象

在这里插入图片描述

分析原因以及解决方案

不能仅使用Dict对象来获取信息,可能Dict对象里面有6个字段
然后应该使用Dict对象的 items 属性来获取key和value

{% for person, query_pics in data.person_list.items %}

2021年04月30日13:33:15 突然发现这是python基本功,汗颜自己的遗忘

正确代码

{% for person, query_pics in data.person_list.items %}
    <p>person : {{person}}</p>
    {% if person %}
        {% for picture in query_pics %}
            <img src="{{picture.file.url}}" alt="picture{{ forloop.counter }}" class="img-1" id="{{picture.name}}">
        {% endfor %}
    {% else %}
        <p>No this person</p>
    {% endif %}
{% endfor %}
</ul>

正确显示

在这里插入图片描述

参考

https://stackoverflow.com/questions/46437264/django-template-key-value-not-possible-in-for-loop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值