Аннотация Django, основанная на Count, не работает, всегда возвращает 1

В файле models.py я определил:

class Order(models.Model):
    ...

class Operation(models.Model):
    order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name="operations")
    ...

У меня есть набор заказов, в котором первый заказ состоит из двух операций.

orders = order.annotate(mycount=Count('operations'))
print(orders[0].operations.count())
print(orders[0].mycount)

Предыдущий фрагмент кода возвращает:

2
1

Следовательно, orders.filter(mycount__gte=2) ошибочно возвращает пустое множество.

По старым сообщениям я вижу, что в прошлом это уже было проблемой, и похоже, что ее исправили, так как обсуждения на форуме старые ( здесь, например) .

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