Django ORM группирует по дате и получает общее значение

Это модель:

class Transaction(models.Model):
    date = models.DateTimeField(auto_now_add=True)
    amount = models.DecimalField(max_digits=10, decimal_places=2)

Это запрос:

end_date = timezone.now()
start_date = end_date - timedelta(days=7)

Transaction.objects.filter(
    date__range=[start_date, end_date],
)
.values("date__date")
.annotate(expenditure=Sum("amount"))
.values("expenditure", date=F("date__date"))
.order_by("date")

Вот вывод:

[
        {
            "expenditure": 70.0,
            "date": "2021-10-28"
        },
        {
            "expenditure": 20.0,
            "date": "2021-10-30"
        }
]

Но я хочу получить на выходе что-то вроде этого:

[
        {
            "expenditure": 0.0,
            "date": "2021-10-26"
        },
        {
            "expenditure": 0.0,
            "date": "2021-10-27"
        }
        {
            "expenditure": 70.0,
            "date": "2021-10-28"
        },
        {
            "expenditure": 0.0,
            "date": "2021-10-29"
        },
        {
            "expenditure": 20.0,
            "date": "2021-10-30"
        },
        {
            "expenditure": 0.0,
            "date": "2021-10-31"
        },
        {
            "expenditure": 0.0,
            "date": "2021-11-01"
        },
]

Я знаю, что могу обработать данные после запроса, но я хотел бы знать, возможно ли получить этот вывод, используя Django ORM?

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