Django flags data-mutating model and manager methods with alters_data = True so the template engine refuses to invoke them during rendering. Django's own related managers set this flag on their mutating methods.
_TaggableManager does not set alters_data on any of its mutating methods. As a result, a template variable resolution that lands on one of these methods will silently execute the write instead of being skipped, which is exactly the footgun alters_data exists to prevent, and it's inconsistent with how every other Django manager behaves.
Django flags data-mutating model and manager methods with
alters_data = Trueso the template engine refuses to invoke them during rendering. Django's own related managers set this flag on their mutating methods._TaggableManagerdoes not setalters_dataon any of its mutating methods. As a result, a template variable resolution that lands on one of these methods will silently execute the write instead of being skipped, which is exactly the footgunalters_dataexists to prevent, and it's inconsistent with how every other Django manager behaves.