/ / Anotar las etiquetas django-taggit adjuntas a un objeto específico - mysql, django, django-queryset, django-taggit

Anote las etiquetas django-taggit adjuntas a un objeto específico: mysql, django, django-queryset, django-taggit

Tengo un objeto que está etiquetado usando django-taggit. Si quisiera obtener una lista de todas las etiquetas adjuntas a este objeto, seguiría la documentación así:

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

Si quisiera saber cuántos objetos de Alimentos se adjuntaron a cada etiqueta existente, haría lo siguiente:

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

Si quisiera obtener un recuento de todos los alimentos adjuntos solamente A las etiquetas que están adjuntas a "Apple", podría hacer lo siguiente:

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

Ok, entonces para mi pregunta. Digamos que mi modelo de comida tiene un campo con una bandera:

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

¿Cómo puedo obtener un recuento de todos los sano alimentos adjuntos solamente a las etiquetas que se adjuntan a "manzana" (donde un alimento saludable se denota por healthy_flag = 1)? Básicamente, para cada etiqueta de "manzana", ¿cuántos alimentos saludables comparten esa etiqueta?

Respuestas

1 para la respuesta № 1

Encontré la respuesta aquí.

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