0

可能重复:
Django,什么是最好的,最快的方法来只从某事物中获取第一个和最后一个元素,Customer.objects.xxxx

嗯,这很难解释,但这就是正在发生的事情..

我有一个模型 A,它有 x 和日期

有多个 A 具有相同的 x 和不同的日期。

从:

A.x = 1 (newest)
A.x = 1
A.x = 1 (oldest)
A.x = 2  

我只想获取每个 x 中最新的,在本例中是第一个和最后一个,不包括较旧的 x=1 重复项。

我曾想过做一些讨厌的循环或使用 itertools,但我不确定实现这一目标的最佳方法是什么。

任何帮助表示赞赏。

4

2 回答 2

0

您可以使用查询latest()集方法。它与使用基本相同.order_by()[0]

order_by()这很好,因为我总是忘记在使用日期时是否需要使用“-” 。

latest_object = Model.objects.latest("date/datetime fieldname")
于 2012-09-28T01:45:08.747 回答
0

从 Django 1.4 开始, .distinct() 查询集 API 接受字段参数

所以我想你可以做这样的事情

Queryset.order_by('-date').distinct('field')

你可以在这里阅读更多关于它的信息。

于 2012-09-28T00:16:30.630 回答