如何解决Django为.html多次渲染图像
我有一个带有django 1.7.1后端的网页。我将其用于图片库。对于某个页面,我要求提供图像。
在views.py
中,我基本上是这样的:
def get_query(req,data_request):
filter = get_filter(data_request) # the request has some filtering instructions
items = Image.objects.filter(**filter) # query a django model
# only return max 20 images
items = items[0:20]
print(len(items)) # indeed returns 20 - only 20 items are given to render()
context = {
'items ':items,}
return render(req,'query_results_painting.html',context)
这一切似乎正常工作。
在传递给渲染的.html
文件中,我具有以下内容:
{% for painting in items %}
<div class='search-result-painting-item'>
{% autoescape off %}
<p class="title"> {{painting.title | safe}} </p>
<p class="artist"> {{painting.artist.name | safe}} </p>
<p class="year"> {{painting.year}} </p>
{% endautoescape %}
<img src= {{painting.image_200.url}}>
</div>
{% endfor %}
可以预料,它将返回以下元素结构:
问题如下:许多图像显示两次,而其余图像仅显示一次(按预期!)。这样一来,渲染时就会创建20多个元素,有时多达40个!
例如参见
请注意,原始的20个项目没有任何重复项,即,只有一个Image
实例的标题为“玻璃和牡蛎静物”。但是,现在呈现了两个唯一的图像。
为什么会这样?如何停止呢?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。