Django 第一个元素由ForeignKey
我有两种型号:Django 第一个元素由ForeignKey,django,Django,我有两种型号: Cars(models.Model): many-many fields Pictures(models.Model): car = models.ForeignKey(Cars, related_name='pictures') img-field, etc 如何在视图中获得汽车的第一张图片(这是一个图库,许多汽车,我需要预览第一张图片)?我使用: 在db中,我有一辆带有4张图片的汽车,视图返回4个具有相同id和不同图片的字典,但我需要一个id-一张图片。如何做到这一点?(
Cars(models.Model):
many-many fields
Pictures(models.Model):
car = models.ForeignKey(Cars, related_name='pictures')
img-field, etc
如何在视图中获得汽车的第一张图片(这是一个图库,许多汽车,我需要预览第一张图片)?我使用:
在db中,我有一辆带有4张图片的汽车,视图返回4个具有相同id和不同图片的字典,但我需要一个id-一张图片。如何做到这一点?(不是OneToOneField,因为有很多关于一辆车的照片)
谢谢您可以:
class Car(models.Model):
@property
def default_picture(self):
try:
return self.pictures.all()[:1][0]
except IndexError:
return None
然后,当您运行汽车查询时,您可以执行以下操作:
cars = Car.objects.all().values('id', 'default_picture__image')
car=Cars.objects.all()。每个卡拉都有一张照片……好吧,我误解了你的问题。我将尝试找到+1的解决方案,但编辑它,
图片集
将不起作用,他已定义了相关的图片名。无法将关键字“默认图片”解析到字段
。选项有:许多字段,但可能没有默认图片。values()仅适用于解析为列的字段/属性。使用cars=Car.objects.all()应该可以,从中可以引用cars[0]。default\u picture或Car.default\u picture在循环中我过去在使用查询集时多次使用此模式。Car.default\u picture
-它写入[]
,我尝试Car.default\u picture\u image
,car.default\u picture.pictures.image
,但它不起作用
cars = Car.objects.all().values('id', 'default_picture__image')