2016-04-08 9 views
0

マイmodels.pyはこのようなものです:DjangoでManyToManyField関係を使ってオブジェクトを数えるには?

class Tag(models.Model): 
    name = models.CharField(max_length=255, unique=True) 

class Article(models.Model): 
    title = models.CharField(max_length=255) 
    body = models.TextField() 
    tags = models.ManyToManyField(Tag, related_name='article_tags') 

は言うことができます、私はタグウィット名「映画レビュー」を持って、どのように私は、このタグと関係を持っている記事の数を得るのですか?カウントのように。

ありがとうございました。あなたがDjangoの.count()を使用することができ、カウント

Article.objects.filter(tags__name='Movie Review').count() 

答えて

2

(以下の例でyour_tag)特定のタグを使用している記事を取得するには、2つの方法があります。Article.objects.filter(tags=your_tag)

  • または関連を使用して:フィルタリングを使用して

    • どちらのArticleには、関係:your_tag.article_tags.all()

    これを実行したら、.count()をge t返される行の数

  • 1

    使用このクエリ..

    Article.objects.filter(tags__name='Movie Review') 
    

    tag = Tag.objects.get(name='Movie Review') 
    article_count = tag.article_tags.all().count() 
    
    関連する問題