Запрос по сумме из связанной модели

Понадобилось тут найти несоответствие суммы платежа Payment с суммой связанных ним элементов PaymentItem.

Решается это простой аннотацией:

from django.db.models import F, Sum


Payment.objects.all()\
    .annotate(s=Sum('payment_items__amount'))\
    .exclude(amount=F('s'))

Вот и все.

Еще больше примеров можно найти в Рецептах и примерах Django ORM.

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