Django:根据两个字段之间的差异对模型进行排序

时间:2011-05-27 16:23:31

标签: django django-models annotations

选择一个像这样的简单课程。

class MyModel(models.Model):
    last_updated = models.DateTimeField(auto_now_add=True)
    last_viewed  = models.DateTimeField(auto_now_add=True)

我想要做的就是在这两个字段之间的时间对这个模型的查询输出进行排序,这样自更新以来未被查看的内容显示的内容高于已有的内容。

我觉得我应该能够对表格进行注释并对该注释进行排序,但是对于注释(或原始SQL,就此而言)我并不是天才。有人能踢我正确的方向吗?

1 个答案:

答案 0 :(得分:19)

您可以这样做:

MyModel.objects.extra(select={'offset': 'last_viewed - last_updated'}).order_by('offset')

有关详细说明,请参阅docs