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

Oli*_*Oli 7 django annotations django-models

拿一个像这样的简单课程.

class MyModel(models.Model):
    last_updated = models.DateTimeField(auto_now_add=True)
    last_viewed  = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

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

我觉得我应该能够对表进行注释并对该注释进行排序,但是在注释(或原始SQL)方面我并不是天才.有人能踢我正确的方向吗?

Sam*_*lan 19

你可以这样做:

MyModel.objects.extra(select={'offset': 'last_viewed - last_updated'}).order_by('offset')
Run Code Online (Sandbox Code Playgroud)

有关详细说明,请参阅文档.