Аннотация 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) ошибочно возвращает пустое множество.
По старым сообщениям я вижу, что в прошлом это уже было проблемой, и похоже, что ее исправили, так как обсуждения на форуме старые ( здесь, например) .