0

重複の可能性:
Django、何かから最初と最後の要素のみを取得するための最良かつ最速の方法は何ですか、Customer.objects.xxxx

うーん、これを説明するのは難しいですが、これが起こっていることです..

xと日付を持つモデルAがあります

x が同じで日付が異なる複数の A があります。

から:

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

古い x=1 の重複を除いて、各 x の最新のものだけを取得したいのですが、この場合は最初のものと最後のものです。

厄介なループを実行したり、itertools を使用したりすることを考えましたが、これを達成するための最良の方法がわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

Django 1.4以降、.distinct()クエリセットAPIはフィールドパラメータを受け入れます

だから私はあなたがこのようなことをすることができると思います

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

あなたはここでそれについてもっと読むことができます。

于 2012-09-28T00:16:30.630 に答える
0

latest()queryset メソッドを使用できます。使い方は基本的に同じ.order_by()[0]です。

日付で使用するときに「-」を使用する必要があるかどうかを常に忘れるので、これは素晴らしいことorder_by()です。

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