Аннотирование на обратном много-ко-многим

Я пытаюсь понять, почему это не работает:-

class A(models.Model):
    contacts = models.ManyToManyField(Contact)

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

Если я попытаюсь подсчитать, сколько существует A с несколькими контактами:-

A.objects.annotate(num_contacts=Count('contacts')).filter(num_contacts__gt=1).count()

их 10.

но если у меня есть определенный контакт, и я хочу получить подсчет того, сколько A's, с которыми он связан, имеют более 1 контакта на них:-

B.a_set.annotate(num_contacts=Count('contacts')).filter(num_contacts__gt=1).count()

Я получаю 0. Счетчик num_contacts всегда выдает 1, даже когда A имеет более 1 контакта.

Должно быть, я пропустил что-то глупое, но я не могу этого увидеть. Есть идеи?

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