python - Django Query 根据最新外键时间戳获取对象并对它们进行排序

标签 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)

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

最佳答案

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

from django.db.models import Max

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

关于python - Django Query 根据最新外键时间戳获取对象并对它们进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44397530/

相关文章:

python - decision_tree_regressor 模型的负 cross_val_score

python - 如何构建用于分类的 LSTM 神经网络

django - 如何将图像添加到 Django 的聚合 RSS 源

django - 如何使 Django 表单字段唯一?

python - Django Do Once 自定义模板标签

django - 如何使用现有字段之一的相同值但不同数据类型来注释 Django 查询集?

Python Pygame 字体 x 坐标

python - 如何在 Pandas 数据框的每一行中的选定列中找到两个最低值?

python - Django taggit 聚合查询返回每个标签的计数

python - 使用 F 对象切换查询集中的 boolean 字段