速览解决方案
不能仅使用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