Всякий раз, когда я использую Annotate с Case / When logi c, чтобы вернуть логическое значение, результирующий набор запросов становится почти вдвое длиннее.
Модель:
class Message(models.Model):
readers = models.ManyToManyField(Compte, related_name='messages')
Message.objects.count() // return 495
Затем:
qs = Message.objects.annotate(read=Case(
When(readers=Compte.objects.first(), then=Value(True),
default=Value(False),
outputfield=BooleanField()))
qs.count() // return 940
Что мне здесь не хватает? Django 2.2,9 / PostgreSQL