1

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」に付けられたタグのみに付けられたすべての食品の数を取得したい場合は、次のように実行できます。

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_flag = 1 で示されます)。基本的に、「リンゴ」タグごとに、そのタグを共有する健康食品はいくつありますか?

4

1 に答える 1

1

ここで答えを見つけました。

apple.tags.all().annotate(food_count=Count('food')).filter(food__health_flag = True)
于 2012-08-23T14:39:31.237 に答える