0

Entryからへの外部キーがあり、特定の日付より前に作成された外部キーVoteを並べ替えたい。Voteどうすればそれをうまくやることができますか?通常、私は次のことを行います。

entries = Entry.objects.annotate(
    num_votes = Count('votes')).order_by('-num_votes')

page = request.GET.get('page')
paginator = Paginator(entries, 12)
try:
    entries = paginator.page(page)
except PageNotAnInteger:
    entries = paginator.page(1)
except EmptyPage:
    entries = paginator.page(paginator.num_pages)

特定の日付より前に作成された投票のみをカウントするように並べ替えるにはどうすればよいですか?DBにクエリを実行し、すべてを反復処理する唯一の方法はありますか?

4

1 に答える 1

1

単純にフィルターを追加する場合は、そのフィルターを集約内に含める必要があります。結合のその部分をフィルタリングするには、外部キーの related_name を使用します。

entries = Entry.objects.annotate(
    num_votes = Count('votes')).order_by('-num_votes')

entries = entries.filter(votes__created__lte=some_date)
于 2012-05-23T00:32:27.407 に答える