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?