python - 在模板中显示图像
问题描述
我一直试图在我的模板中显示存储在我的模型中的图像。但我不能。有人可以告诉我我做错了什么吗?
先感谢您。
模型.py:
class DeviceType(models.Model):
type_name = models.CharField(primary_key=True, max_length=64, unique=True)
type_description = models.TextField(max_length=512, blank=True)
def __str__(self):
return self.type_name
def get_absolute_url(self):
return reverse("devices:type-detail", kwargs={"pk": self.pk})
class DeviceTypeImage(models.Model):
image_status = IntegerField(unique=True)
image = models.ImageField(upload_to='images/types/')
image_device_type = models.ForeignKey(DeviceType, on_delete=models.CASCADE, related_name='image')
def __str__(self):
return str(self.image_status)
def get_absolute_url(self):
return reverse("devices:type-detail", kwargs={"pk": self.pk})
视图.py:
class DeviceTypeDetailView(DetailView):
template_name = 'devices/type-detail.html'
model = DeviceType
def get_object(self):
return get_object_or_404(DeviceType, pk=self.kwargs.get("pk"))
模板:
<h1>Type detail</h1>
{{ object.type_name }}<br>
{{ object.type_description }}<br>
{{ object.image_status }}<br>
{{ object.image_device_type }}
<img src="{{ object.image.url }}" alt="...">
urls.py:
urlpatterns = [
....
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
解决方案
object
是一个DeviceType
,不是一个DeviceTypeImage
。ADeviceType
还可以有多个 DeviceTypeImage
s,sobject.image
的管理器也是如此DeviceTypeImage
:它可以包装零个、一个或多个图像。
因此,您可以通过以下方式访问图像:
{{ object.type_name }}<br>
{{ object.type_description }}<br>
{% for image in object.image.all %}
{{ image.image_status }}
<img src="{{ image.image.url }}">
{% endfor %}
推荐阅读
- python - (Python) 尝试使用 Google Classroom API 访问课程作业时出现错误 401
- arrays - Excel:检查 2 个列表以查看它们是否包含值,并计算它们相互配对的次数
- java - 从另一个文件调用类来服务
- javascript - document.getElementsByName 找不到元素
- php - 第一行php之后数组行值是空白的
- powershell - Powershell - 获取广告用户 -filter EmailAddress
- ios - iOS14 App Clip - 找不到 GlobalEnvironment 类型的 ObservableObject
- java - 如何在 Java 中读取多部分文件输入流的内容
- python - 为什么在 Python Tkinter 中触发单击事件时调用 listbox.curselection() 时返回空元组?
- javascript - 嵌套数组有困难