Django - 按添加到ManyToMany字段的最后一个元素查询对象

时间:2016-11-01 19:34:33

标签: python django many-to-many django-orm

我有这样的事情:

class Car(models.Model):
    model = models.CharField(max_length=200)
    brand = models.CharField(max_length=100)
    status = models.ManyToMany(Status)

class Status(models.Model):
    name = models.CharField(max_length=40)
    date = models.DateTimeField('Status creation date')

如何查询最后状态(最新状态)为REPAIRED的所有汽车?这只能在一个查询中实现吗?

1 个答案:

答案 0 :(得分:1)

from django.db.models import Max

cars = Car.objects.annotate(Max('status__date')).filter(status__name='REPAIRED').distinct()

您可以阅读多对多关系的Django examples