2
関連するmanytomany要素の数に応じてランク付けしたい要素のリストがあります。私はそれらのソース要素の数を集計するのが正しい方法だと思うが、私はまだ解決策を見つけていない。Django:1つのクエリで数を集計します。
class Element(models.Model):
Source1 = models.ManyToManyField(Source1)
Source2 = models.ManyToManyField(Source2)
Source3 = models.ManyToManyField(Source3)
Ranked = (Element.objects.all().aggregate(
Ranked=Sum(F('Source1') + F('Source2') + F('Source3'), output_field=IntegerField)['Ranked']
))
は、ご返信いただきありがとうございます。これは私にソースの合計を与えますが、ソースの量によってソートされたすべての要素のリストはありません。 – merlinschumacher
私は答えを編集しました – ittus
それは動作しますが、私はこれに短縮しました: 'ランキングリンク= Link.objects.annotate(ランキング=( 'RssEntries')+カウント( 'ツイート')+カウント( 'RedditPosts') ).order_by( ' - ranking')。all() ' ありがとう! – merlinschumacher