Джанго Аннотат Условный

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

user_array = User.objects.all().annotate(
   total_sum=Sum('charge__amount', only=Q(charge__due_date__lte=date))
)

1 ответ

Решение

Пытаться

user_array = User.objects.filter(charge__due_date__lte=date).annotate(amount_due=Sum('charge__amount'))

мотивировано https://docs.djangoproject.com/en/1.8/topics/db/aggregation/. Документы утверждают, что только отфильтрованные значения отношений будут аннотированы.

Другие вопросы по тегам