Применение обратных отношений с внешним ключом к двум разным моделям Django приводит к некорректному результату
Class Job(Base):
.
.
joining_status = models.BooleanField(default=False)
drive = models.ForeignKey(Drive, null=True, blank=True)
Class Internship(Base):
.
.
joining_status = models.BooleanField(default=False)
drive = models.ForeignKey(Drive, null=True, blank=True)
Class Drive(xyz):
.
.
.
Я пытаюсь аннотировать количество рабочих мест и стажировок (сумма), имеющих статус присоединения true для определенного идентификатора диска.
Drive.objects.filter(id=716).annotate(\
...: x= Count(Case(\
...: When(Q(internship__joining_status=True), then=1), output_field = IntegerField()))).values('x')
output {'x':0}
Drive.objects.filter(id=716).annotate(\
...: x= Count(Case(\
...: When(Q(job__joining_status=True), then=1), output_field = IntegerField()))).values('x')
output {'x':1}
Но когда я объединяю оба варианта вместе, это приводит к нежелательному результату.
Drive.objects.filter(id=716).annotate(\
...: x= Count(Case(\
...: When(Q(job__joining_status=True) | Q(internship__joining_status=True), then=1), output_field = IntegerField()))).values('x')
output: {"x":2} // undesired output
должно быть {'x':1}. Я также пробовал использовать несколько условий when, но результат снова был нежелательным. Я немного новичок в django, нужна помощь в написании этого запроса.