ForeignKey的第一个元素

时间:2013-03-07 18:04:14

标签: django

我有两种模式:

Cars(models.Model):
many-many fields

Pictures(models.Model):
car = models.ForeignKey(Cars, related_name='pictures')
img-field, etc

如何查看汽车的第一张照片(它的画廊,许多汽车,我需要第一张图片供预览)?我用:

car = Cars.objects.all()[:6].values('id', 'pictures__image')

在db中我有一辆车有4张图片,视图返回4个具有相同ID和不同图像的词典,但我需要一个id - 一张图片。这该怎么做? (不是OneToOneField,因为有很多车的照片)。

由于

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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')