问题描述
我正在尝试在 django 中执行与此等效的查询:
SELECT SUM(quantity * price) from Sales GROUP BY date.
我的 Django 查询如下所示:
Sales.objects.values('date').annotate(total_sum=Sum('price * quantity'))
无法将关键字“价格 * 数量”解析到字段中
然后我在检查这个 https://stackoverflow.com/a/18220269/12113049
后想出了另一个查询Sales.objects.values('date').annotate(total_sum=Sum('price',field='price*quantity'))
不幸的是,这对我帮助不大。它给了我 SUM(price) GROUP BY date
而不是 SUM(quantity*price) GROUP BY date
。
如何在 django 中查询?
解决方法
您应该使用 F
expressions 对字段执行操作:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
编辑:假设 from django.db.models import F
Sales.objects.values('date').annotate(total_sum=Sum(F('price') * F('quantity')))
是 price
并且 DecimalField
是 quantity
(不同类型),您需要指定 { IntegerField
中的 {1}}:
output_field