Как эффективно подсчитать несколько вложенных дочерних элементов в модели Django?
У меня есть следующая модель данных (бэкенд базы данных - PostGres):
class User(models.Model):
...
teams = models.ManyToManyField('Team', blank=True, related_name='all_users')
...
class Team(models.Model):
...
parent_team = models.ForeignKey('self', blank=True, null=True, related_name='child_teams')
...
Таким образом, User может принадлежать нескольким Team, а Team могут быть вложены друг в друга с разной степенью глубины.
Я хотел бы подсчитать все User в данной команде и все ее дочерние элементы, включая вложенные дочерние элементы (но исключая дубликаты). Сейчас я делаю это рекурсивно, что кажется не самым эффективным способом. Есть ли лучший способ сделать это?