0

こんにちは、A と B を含む次の 1:n の関係があり、対応する B オブジェクトが持つ最新の日付で並べ替えられた A のすべてのオブジェクトを含むクエリセットを取得したいと考えています。

class A(models.Model):
    ...


class B(models.Model):
    a = ForeignKey(B)
    date_created = models.DateTimeField()

例:

A = {a1, a2}

B = {b1 = (a1, 2.4.), b2 = (a1, 1.5.), b3 = (a2, 7.9.), b4 = (a2, 1.1.)}

b3 は b1 と b2 の最新の日付よりも新しいため、a2 は a1 の前にリストする必要があります。

ジャンゴでこれを行う方法を知っている人はいますか?

4

1 に答える 1

1

注釈を使用する必要があります。このサンプルを参照してください:

Book.objects.annotate(num_authors=Count('authors')).order_by('num_authors')

あなたのコードのために

from django.db.models import Max
your_query_set = (
    A
   .objects
   .annotate( max_data = Max( 'b__date_created' ) )
   .order_by( '-max_data' )
    )
于 2013-08-05T13:51:43.620 に答える