我有两个模型:Packages
和Images
。 Images
与Packages
有多对一关系。 Images
表有一个外键package_id
。我必须显示country
的{{1}},price
属性以及与该包相关的一个图像。可能有许多图像与单个包相关,但是我必须只选择一个。
表格如下:
Packages
:
Packages
:
我的代码如下:
Views.py
Images
的index.html
def index(request):
featured = Package.objects.filter(featured=True).order_by('-pub_date')[:4]
featured_packages = []
for item in featured:
image = item.packageimages_set.all()[1]
data = {'package': item, 'image': image}
featured_packages.append(data)
context = {'featured': featured_packages}
return render(request, 'tours/index.html', context)
一切似乎都很好我得到了网址。但是,我没有得到输出。输出如下:
我的错误在哪里?我无法显示图像。是否有更高效的方法来完成上述任务?
答案 0 :(得分:0)
我试过这段代码:
featured_packages.append(data)
属性错误:' dict'对象没有属性'数据'
答案 1 :(得分:0)
我实际上尝试了不同的东西,最终找到了这个解决方案。 Views.py:
def index(request):
packages = Package.objects.filter(featured=True).order_by('-pub_date')[:4]
featured_packages = []
for package in packages:
image = package.packageimages_set.all()[1]
data = {'package': package, 'image': image}
featured_packages.append(data)
return render(request, 'tours/index.html', {'featured_packages': featured_packages})
对Index.html稍作修改:
{% load static %}
{% load thumbnail %}
{% for item in featured_packages %}
{% thumbnail item.image.url "1170x480" crop="center" as im %}
<img src="{{im.url}}" width="{{im.width}}" height="{{im.height}}" alt>
{% endthumbnail%}
{% endfor %}
我不知道怎么回事,但这确实解决了我的问题。这是Screenshot。我得到一些加密的文件名,图片实际上正在加载。 它是缩略图吗?我正在使用sorl.thumbnail或者我不认为&#34;加载静态&#34;因为我试图在没有它的情况下加载文件而产生任何效果。它完全没用。