У меня есть три модели, упрощенные для примера:
class Customer(models.Model):
email = models.CharField(max_length=128)
class Order(models.Model):
customer = models.ForeignKey(Customer)
order_status = models.CharField(blank=True, max_length=256)
class Lineitem(models.Model):
order = models.ForeignKey(Order)
quantity = models.IntegerField(blank=True)
price = models.DecimalField(max_digits=6, decimal_places=2)
Я хочу запросить клиентов (возможно, с фильтром) и аннотировать общую сумму, которую они потратили (т.е. сумма (количество * цены)
Я пробовал: Customer.objects.filter(something).annotate(total_spent=Sum(F('order__lineitem__quantity') * F('order__lineitem__price')))
Похоже, что Sum() не может использоваться с выражениями F(). Есть ли другой способ сделать это?