Django найти среднее количество последователей

У меня есть модель:

class User(models.Model):
    followers = models.ManyToMany('users.User', related_name='following')
    # Other non important fields...

Из этого я хочу найти ОБОИХ:

  1. the average number of followers a user has
  2. the average number of users a user is following

Я пробовал следующее:

User.objects.aggregate(Avg('followers'))['followers__avg']
User.objects.aggregate(Avg('following'))['following__avg']

Но они не подтягивают правильные данные. Например, для (1) у меня есть 3 пользователя, один из них следует за двумя другими, а один из двух других следует за первым. Мой код выше выдает 1.3333, что неверно, должно быть 1, так как у каждого из них 3 подписчика (даже если первый пользователь следует за 2 пользователями, он должен считаться как 2 подписчика)

Дайте мне знать, если вам нужны еще примеры.

Заранее спасибо.

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