python - 如何将保存在数据库中的图像渲染为模型的字段
问题描述
我有一个模型
class NewListing(models.Model):
title= models.CharField(max_length= 20)
image= models.ImageField(upload_to= "static", default="static/default_image.jpg", null=True)
description = models.TextField()
Starting_Bid= models.IntegerField()
time= models.CharField(max_length= 30)
和模型的形式
class NewListingForm(ModelForm):
class Meta:
model= NewListing
fields= ["title", "image", "description", "Starting_Bid"]
在我的 views.py 中,我希望索引 url 显示所有列表的列表,所以我写了这个
def index(request):
return render(request, "auctions/index.html", {
"listings": list(NewListing.objects.all())
})
这是我的index.html,我尝试在其自己的 div 中显示每个列表
{% for listing in listings %}
<div>
<h3>
<a href='listings/{{listing.title}}'> {{listing.title}}</a>
</h3>
<p>{{listing.description}}</p>
<img src='static/{{listing.image}}'>
<p>{{listing.time}}</p>
</a>
</div>
{% endfor %}
问题是每当我尝试渲染此页面时,我都会得到一个损坏的缩略图而不是图像。我该如何解决?
解决方案
假设您有一个存储所有静态文件的静态文件夹,请先加载静态文件
{% load static %}
{% for listing in listings %}
<div>
<h3>
<a href='listings/{{listing.title}}'> {{listing.title}}</a>
</h3>
<p>{{listing.description}}</p>
<img src="{% static ' listing.image.url' %}" >
<p>{{listing.time}}</p>
</a>
</div>
{% endfor %}
推荐阅读
- google-sheets - 日期转换 - Google 表格中的公历到 Hijr
- php - 当超过 X 个通知被抛出时 PHP-FPM 停止渲染页面
- javascript - 无法使用 javascript 访问 SVG 内容
- java - ClassNotFoundException: org hibernate.collection.PersistentSet + Hibernate 5.4
- mysql - 在 powershell 中调用 MySql 数据库/表
- javascript - 如何使用 React 测试库获取当前的媒体查询值
- python - 如何在 tkinter 中添加第二行?
- docker - 构建 gcloud 项目时出现问题:复制失败:未指定源文件
- azure-api-management - 管理开发者门户所需的最少访问权限
- postgresql - 与多个 Postgresql 数据模式的单个连接。一些只读的