У меня два почти одинаковых тестовых запроса:
test1 = (
Invoice.objects
.filter(id=2787)
.annotate(plan_total=Sum(
'item_reason__planned_bank_operations__amount')
))
test2 = (
Invoice.objects
.filter(id=2787)
.annotate(
plan_total=Sum(
'item_reason__planned_bank_operations__amount'),
pieces_total=Sum(
'invoice_pieces__amount')
))
Результат test1.values('plan_total')
возвращает <QuerySet [{'plan_total': Decimal('658.00')}]>
, но когда я пытаюсь получить те же значения test2.values('plan_total')
, он возвращает <QuerySet [{'plan_total': Decimal('1316.00')}]>
.Как это могло произойти?
Немного больше информации о полях выше:
item_reason
равно ForeignKey
, когда planned_bank_operations
- связанный запрос, связанный с related_name в PlanOperation
модель.
Та же история с invoice_pieces
.InvoicePiece
- это отдельная модель, у которой ForeignKey to Invoice со связанным именем InvoicePieces
.
Итак, я не могу понять это поведение.Это ошибка или фича?