我有三種模式,簡化的例子:註釋兩個字段的總和乘以
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')))
這樣看來,點心()不能與F()表達式中使用,是否有另一種方式做到這一點
你有沒有得到這個工作? – dotty 2010-06-01 15:03:01
我正在尋找解決方案 – Don 2011-06-10 15:37:26
[Django Aggregation:兩個字段乘法求和]的可能重複(http://stackoverflow.com/questions/12165636/django-aggregation-summation-of-multiplication-of-two場) – Louis 2016-06-27 10:43:29