Django ORM - 最大化一个字段并获取冠军行中另一个字段的值

时间:2017-03-11 08:11:02

标签: django-orm

这是second time我问这样的问题,但由于上一篇文章没有得到回答,我只想尝试更具体一点。

考虑下表:

id     text       dialog_id  Timestamp

666    Hi         11         2017-01-21
667    How're u?  11         2017-01-01
668    Never      26         2016-03-01
669    Say        26         2016-03-04
770    Never      26         2016-03-29

相应的ORM模型如下所示:

class Dialog(models.Model):
    pass

class MessageBody(models.Model):
    dialog = models.ForeignKey(Dialog, models.DO_NOTHING)
    text = models.TextField()
    timestamp = models.DateTimeField()

对于每个对话框,我想在对话框中获取带有最新时间戳的消息ID。因此,上述示例的所需输出应为:

[666, 770]

为什么呢?因为666在dialog_id = 11的对话框中具有最大的时间戳(2017-01-21),而770 - 是dialog_id = 26的对话框中的冠军。

我不想相信Django工具不足以满足这一要求,我不得不进行纯SQL查询。请帮帮我。

0 个答案:

没有答案