¿Qué beneficio proporciona Django-Taggit sobre una implementación simple de etiquetado ManyToManyField ()?

La API de acuerdo con la documentación parece alcanzable con un simple ManyToManyField ... ¿qué me estoy perdiendo?

Muestra de la documentación de Django-Taggit:

class Food(models.Model):
    # ... fields here

    tags = TaggableManager()

Entonces puedes usar la API así:

>>> apple = Food.objects.create(name="apple")
>>> apple.tags.add("red", "green", "delicious")
>>> apple.tags.all()
[<Tag: red>, <Tag: green>, <Tag: delicious>]
>>> apple.tags.remove("green")
>>> apple.tags.all()
[<Tag: red>, <Tag: delicious>]
>>> Food.objects.filter(tags__name__in=["red"])
[<Food: apple>, <Food: cherry>]

Respuestas a la pregunta(1)

Su respuesta a la pregunta