【问题标题】:Annotate django-taggit tags attached to specific object注释附加到特定对象的 django-taggit 标签
【发布时间】:2012-08-18 11:30:52
【问题描述】:

我有一个使用django-taggit 标记的对象。如果我想获取附加到该对象的所有标签的列表,我会像这样遵循文档:

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

如果我想知道每个标签上附加了多少 Food 对象,我会执行以下操作:

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'))

好的,所以我的问题。假设我的 Food 模型有一个带有标志的字段:

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

我如何才能获得所有 healthy 食品的数量,这些食品 only 附加到附加到“apple”的标签(健康食品由 health_flag 表示= 1)?基本上,对于每个“苹果”标签,有多少健康食品共享该标签?

【问题讨论】:

    标签: mysql django django-queryset django-taggit


    【解决方案1】:

    找到答案here

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

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2012-07-04
      • 2015-01-12
      • 1970-01-01
      相关资源
      最近更新 更多