Мне потребовалось много времени, чтобы обернуть голову вокруг этого, но, думаю, я наконец-то понял это:
affiliates = User.objects.annotate(num_referrals=Count('referrals')).filter(num_referrals__gt=0)
Я не думал, что смогу использовать обратную связь
referred_by = models.ForeignKey(User, null=True, blank=True, related_name='referrals')
в Count()
, и я не думаю, что вы можете использовать аннотированное значение в фильтре ... это довольно круто. Я все еще хотел бы, чтобы вы могли использовать GROUP BY без необходимости комментировать материал (при условии, что мне не нужен счетчик).