在django中,如何在字段上对模型进行排序然后获取最后一项?

Pau*_*cks 21 sql sorting django django-models

具体来说,我有一个像这样的字段的模型

pub_date = models.DateField("date published")
Run Code Online (Sandbox Code Playgroud)

我希望能够轻松地抓住最近的对象pub_date.最简单/最好的方法是什么?

像下面这样的东西会做我想要的吗?

Edition.objects.order_by('pub_date')[:-1]
Run Code Online (Sandbox Code Playgroud)

Har*_*mbe 33

obj = Edition.objects.latest('pub_date')
Run Code Online (Sandbox Code Playgroud)

你也可以通过放入get_latest_by模型的Meta 来简化事情,然后你就能做到

obj = Edition.objects.latest()
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档.您可能还想设置orderingMeta选项.


Jon*_*nan 21

Harley的答案是如何根据特定型号的某些排序标准来获取最新的情况,但一般的解决方案是颠倒排序并检索第一项:

Edition.objects.order_by('-pub_date')[0]
Run Code Online (Sandbox Code Playgroud)