Как отфильтровать наибольшую сумму для каждой отдельной даты в Django
Модели:
Таблица клиентов
class Customer(models.Model):
name = models.CharField(max_length=100)
email = models.CharField(max_length=30)
phone = models.CharField(max_length=12)
def __str__(self):
return f"Customer : {self.name}"
Таблица заказов
class Orders(models.Model):
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
order_date = models.DateTimeField(auto_now_add=True)
total_amount = models.PositiveIntegerField()
def __str__(self):
return f"Customer: {self.customer.name} | Total Amount: {self.total_amount}"
Запрос, который я использую:
order = Orders.objects.values('customer__id', 'customer__name', 'customer__email',
'customer__phone').annotate(Sum('total_amount')).order_by('order_date')
Вот результат, который я получаю от всей записи:
Результат, который мне нужен, должен быть Наибольшая общая сумма за каждую дату/день. Это означает, что он должен вернуть наибольшую общую сумму за дату/день, и каждый день может содержать разное количество записей. Например, если нам нужна запись за 5 дней, и каждый день содержит 10 записей (предположим), тогда он должен дать нам только пять заказов с наибольшей общей суммой за пять дней (одна запись за день заказа с наибольшей общей суммой). Надеюсь, вы поняли мой вопрос (я постарался объяснить).