Django Query获取基于对象的最新外键时间戳并对其进行排序

时间:2017-06-06 18:41:14

标签: python django django-queryset

我希望根据一组对象时间戳来订购一个查询集。

这是一个简化的例子:

Class Device(models.Model:
    status = models.CharField(max_length=50)

class Event(models.Model):
    timestamp = models.DateTimeField(auto_now_add=True)
    device = models.ForeignKey(Device)

我想获取设备的最新事件,以便我可以根据它订购设备查询集。

1 个答案:

答案 0 :(得分:1)

您可以使用注释来获取设备事件的最新时间戳,然后按照带注释的字段按降序排序

from django.db.models import Max

Device.objects.annotate(
    most_recent=Max('event_set__timestamp')
).order_by('-most_recent')