【发布时间】:2020-12-23 21:17:57
【问题描述】:
我一直试图在我的模板中显示一个存储在我的模型中的图像。但我不能。有人可以告诉我我做错了什么吗?
提前谢谢你。
model.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})
view.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。 -
我如何在模板中访问我的图像?调用 get_object_or_404(DeviceType, pk=self.kwargs.get("pk")) 时不是自动访问 DeviceTypeImage 模型吗?
-
好吧,因为它是
ForeignKey,所以没有图像:DeviceType可以有零、一个或更多相关DeviceTypeImages.
标签: python django django-views django-templates