Django - 在 Django 3.1 中从国外获取第一张图片 table
Django - Get First image from Foreign related table in Django 3.1
请问我使用的是 Django 3.1,我正在尝试弄清楚如何从外国获取一张图片 table - 在家庭视图中 - 应该有包含所有车辆的卡片,并且每个卡片只有第一张图片一个 - 作为缩略图。
这是我的 models.py:
class Vehicle(models.Model):
make = models.ForeignKey(Make, on_delete=models.PROTECT)
model = models.ForeignKey(Model, on_delete=models.PROTECT)
year = models.PositiveSmallIntegerField()
...
def first_image(self):
return self.image_set.first()
class Image(models.Model):
vehicle = models.ForeignKey(Vehicle, on_delete=models.PROTECT)
image = models.ImageField(upload_to='images/')
在我的模板中,我试图通过以下方式获取车辆的第一张图片:
{% for v in vehicles %}
<img src="{{ v.first_image.image.url }}" alt="">
{% endfor %}
我也试过 {{ v.first_image.url }} 但没有任何效果。
我试图向 first_image 添加一个打印函数(与 return - self.image_set.first() 相同)并且它得到 None,或 catalog.Image.None
当我打印一辆车的所有图像时,它通过以下方式完美运行:
{% for i in images %}
<img src="{{ i.image.url }}" alt="">
{% endfor %}
views.py:
from django.shortcuts import render
from .models import Vehicle, Image
def home_view(request):
vehicles = Vehicle.objects.all()
context = {
'vehicles': vehicles,
}
print(context)
return render(request, 'home.html', context)
def vehicle_detail_view(request, slug_make, slug_model, slug_vehicle):
vehicle = Vehicle.objects.get(
make__slug=slug_make, model__slug=slug_model, slug=slug_vehicle)
images = Image.objects.filter(vehicle=vehicle)
context = {
'vehicle': vehicle,
'images': images
}
return render(request, 'vehicle_detail.html', context)
我不知道,如何解决这个问题,我只是想在 Vehicle table 中创建另一个字段,并将其命名为 thumbnail.
感谢您的帮助
有效,我只是在限制时犯了一个错误:
def home_view(request):
vehicles = Vehicle.objects.all()[:1]
我很抱歉
请问我使用的是 Django 3.1,我正在尝试弄清楚如何从外国获取一张图片 table - 在家庭视图中 - 应该有包含所有车辆的卡片,并且每个卡片只有第一张图片一个 - 作为缩略图。
这是我的 models.py:
class Vehicle(models.Model):
make = models.ForeignKey(Make, on_delete=models.PROTECT)
model = models.ForeignKey(Model, on_delete=models.PROTECT)
year = models.PositiveSmallIntegerField()
...
def first_image(self):
return self.image_set.first()
class Image(models.Model):
vehicle = models.ForeignKey(Vehicle, on_delete=models.PROTECT)
image = models.ImageField(upload_to='images/')
在我的模板中,我试图通过以下方式获取车辆的第一张图片:
{% for v in vehicles %}
<img src="{{ v.first_image.image.url }}" alt="">
{% endfor %}
我也试过 {{ v.first_image.url }} 但没有任何效果。 我试图向 first_image 添加一个打印函数(与 return - self.image_set.first() 相同)并且它得到 None,或 catalog.Image.None
当我打印一辆车的所有图像时,它通过以下方式完美运行:
{% for i in images %}
<img src="{{ i.image.url }}" alt="">
{% endfor %}
views.py:
from django.shortcuts import render
from .models import Vehicle, Image
def home_view(request):
vehicles = Vehicle.objects.all()
context = {
'vehicles': vehicles,
}
print(context)
return render(request, 'home.html', context)
def vehicle_detail_view(request, slug_make, slug_model, slug_vehicle):
vehicle = Vehicle.objects.get(
make__slug=slug_make, model__slug=slug_model, slug=slug_vehicle)
images = Image.objects.filter(vehicle=vehicle)
context = {
'vehicle': vehicle,
'images': images
}
return render(request, 'vehicle_detail.html', context)
我不知道,如何解决这个问题,我只是想在 Vehicle table 中创建另一个字段,并将其命名为 thumbnail.
感谢您的帮助
有效,我只是在限制时犯了一个错误:
def home_view(request):
vehicles = Vehicle.objects.all()[:1]
我很抱歉