2016-01-01 81 views
1

假設我有以下型號與另一ManyToManyField過濾Django的ManyToManyField由多個路口

class Tag(models.Model): 
    tag = models.CharField(max_length=128) 

class Entry(models.Model): 
    ... 
    tags = models.ManyToManyField(Tag, related_name='entries') 
    ... 

class Option(models.Model): 
    ... 
    tags = models.ManyToManyField(Tag, related_name='options') 

我怎樣纔能有目前在設定特定的標籤至少2標籤選項實例的查詢集條目實例?

回答

0

這是你所需要的?

from django.db.models import Count 

options = Option.objects.filter(tags__in=entry.tags.all()) 
options = options.annotate(tag_count=Count('tags')) 
options = options.filter(tag_count__gte=2) 
+0

是的,非常感謝。 –