Получение количества сущностей с иностранными ключами второй степени в Django

У нас есть модель данных с тремя основными моделями:

  • Группа
  • Активность
  • Участник (модель пользователя)
class Group(models.Model):
    name = models.CharField(max_length=255)

class Activity(models.Model):
    participants = models.ManyToManyField(
        to=settings.AUTH_USER_MODEL
    )
    group = models.ForeignKey(to=Group, reverse_name="activities")

Я хочу знать, сколько раз люди участвовали в групповых мероприятиях, поэтому я хотел бы подсчитать участников для всех мероприятий, независимо от уникальности.

Как я могу суммировать подсчеты всех участников для всех мероприятий, связанных с данной группой?

example data set with aggregation

Не уверен, правильно ли я понял вопрос (судя по диаграмме, думаю, что да). Этот запрос возвращает сумму количества участников (не разных) всех мероприятий группы 1:

User.objects.filter(activity__group_id=1).count()
Вернуться на верх