Django: Аннотирование отдельных внешних отношений ManyToMany

Учитывая следующую упрощенную модельную установку

class Tag(models.Model):
    name = CharField()

class Template(models.Model):
    name = CharField()
    tags = ManyToManyField(Tag)

class Collection(models.Model):
    name = CharField()
    templates = ManyToManyField(Template)

class GenericViewSet(viewsets.ModelViewSet):
    def get_queryset():
        ...
        queryset = Collection.objects.all()
        queryset = queryset.annotate(tags=models.Distinct('templates__tags'))
        ...

Существует ли способ, подобный последней строке выше, аннотировать кверисет Collection отдельным набором тегов, происходящих из его шаблонов?

Пример

(Template):
    name: History 1
    tags: [England, France]

(Template):
    name: History 2
    tags: [England, United States)

(Collection):
    name: History of England
    templates: [History 1, History 2]
    tags: [England, France, United States]

Где теги коллекции являются производными от ее шаблонов.

Вернуться на верх