2012-08-23 92 views
1

我有一個使用django-taggit進行標記的對象。如果我想獲得附加到該對象的所有標籤的列表,我會按照文件像這樣:註釋附加到特定對象的django-taggit標籤

apple = Food.objects.create(name="apple") 
apple.tags.add("red", "green", "delicious") 
apple.tags.all() 

如果我想知道有多少食物對象被連接到每個標籤的存在,我會請執行以下操作:

Tag.objects.all().annotate(food_count=Count('food')) 

如果我想獲得的所有食品項目的數附以附加到「蘋果」的標籤,我可以做到以下幾點:

apple = Food.objects.create(name="apple") 
apple.tags.add("red", "green", "delicious") 
apple.tags.all().annotate(food_count=Count('food')) 

好吧,我的問題。比方說,我的食物模型具有標誌字段:

class Food(models.Model): 
    name = models.CharField(max_length=200, unique = True) 
    healthy_flag = models.BooleanField(default=False) 

我怎樣才能獲得所有連接的唯一以附加到「蘋果」的標籤健康食品的計數(其中一健康食品由health_flag = 1表示)?基本上,對於每個'蘋果'標籤,有多少健康食品共享該標籤?

回答

1

找到了答案here

apple.tags.all().annotate(food_count=Count('food')).filter(food__health_flag = True)