Аннотирование на обратном много-ко-многим
Я пытаюсь понять, почему это не работает:-
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 контакта.
Должно быть, я пропустил что-то глупое, но я не могу этого увидеть. Есть идеи?