2017-01-03 22 views
-1

私はライターモデル/テーブルなどArticleモデルがありますと、すべての作家を得ることができ、多くのArticles.Iを持つことができる唯一のライターが、一つのライターを持つことができますdjangoで最も多くの外部キーを持つ行を取得するには?

class Writer(models.Model): 
    user = models.OneToOneField(User, on_delete=models.CASCADE) 
    pic = models.URLField() 
    start_date = models.DateField('date of start', blank=True, null=True) 
    about = models.TextField(max_length=300) 

class Article(models.Model): 
    writer = models.ForeignKey(Writer) 
    name = models.CharField(max_length=100) 
    content = models.DecimalField(max_digits=10, decimal_places=2) 
    date = models.DateField(auto_now=False, auto_now_add=True) 

一品を

Writer.objects.all() 

しかし、私はほとんどの記事でライターを欲しいです。どうやってやるの?

+2

'記事= Writer.objects.annotate(NUM_ARTICLES件=カウント( '記事'))ORDER_BY( ' - NUM_ARTICLES件')' [ここ]集計関数について 読む(HTTPS:。//docs.djangoproject .com/ja/1.10/topics/db/aggregation /) – latsha

答えて

3

お試しください -

higest_count = Writer.objects.annotate(num_articles=Count('article')).order_by('-num_articles')[0].num_articles 
print(higest_count) #this will print highest count 
0

クエリセットに一致するデータベース のオブジェクト数を表す整数を返します。 count()メソッドは決して例外を発生させません。

例:

データベースの総数を返します。

Entry.objects.count() 

その見出し「レノン」心の中で、このカウント方法で

Entry.objects.filter(headline__contains='Lennon').count() 

が含まれているエントリの数を返します、あなたはWriter.article_set.count()を行うことによってArticlesの関連セットをカウントすることができますし、最も多くのオブジェクトを取得するarticles

関連する問題