【发布时间】:2017-12-31 11:25:20
【问题描述】:
我有两个模型:Packages 和 Images。 Images 与 Packages 具有多对一的关系。 Images 表有一个外键 package_id。我必须显示Packages 的属性country、price,并带有一张与包裹相关的图像。一个包可以有很多张图片,但是我只能选择一个。
表格如下:
Packages:
- 身份证
- 国家
- 价格
Images:
- 身份证
- 网址
- package_id
我的代码如下:
Views.py
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)
索引.html
{% for item in featured %}
<p>Country: {{item.package.country}}</p>
<p>Price: {{item.package.price}}</p>
<p>Image: <img src="{{item.image.url}}"></p>
{% endfor %}
一切似乎都很好,我得到了 URL。但是,我没有得到输出。输出如下所示:
我的错误在哪里?我无法显示图像。有没有什么更有效的方法来完成上述任务?
【问题讨论】:
-
好像是目录路径错误。您是否在 settings.py 中设置了静态和/或媒体文件目录?这是 Django 的文档stackoverflow.com/questions/29360395/display-images-in-django
-
您的 MEDIA_URL 设置是什么?为了在该 URL 上实际提供图像,您做了什么?
-
STATIC_URL = '/static/' MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 这就是我所拥有的。每件事似乎都在另一个页面上工作,我有一些不同的方法来获取内容。但是,它似乎不适用于此页面。 @丹尼尔罗斯曼
-
是的!我已经设置了所有需要的东西。在另一个页面中一切正常。我显示图像。但我无法在此页面中显示。 @马格努斯
标签: django django-models django-templates django-views