我希望根据一组对象时间戳来订购一个查询集。
这是一个简化的例子:
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)
我想获取设备的最新事件,以便我可以根据它订购设备查询集。
答案 0 :(得分:1)
您可以使用注释来获取设备事件的最新时间戳,然后按照带注释的字段按降序排序
from django.db.models import Max
Device.objects.annotate(
most_recent=Max('event_set__timestamp')
).order_by('-most_recent')