我有这种模式:
class OrderProducts(models.Model):
product = models.ForeignKey(Product)
quantity = models.IntegerField()
...
我需要计算有多少OrderProducts拥有相同的产品。它正在使用这一行:
ordersProduct = OrderProducts.objects.prefetch_related('product_set')\
.filter(my-filter)\
.values('product','product__title')\
.annotate(total=Count('product'))\
.order_by('-total')
此行有效,我知道我有多少相同的OrdersProduct。但是,我需要为每个OrdersProduct添加总数量和每个orderProduct的数量。
如果我在同一产品中有3次相同的OrderProduct,我想知道这3个查询的每个数量的数量(总数)。
谢谢!
编辑:
它正在使用它:
ordersProduct = OrderProducts.objects.prefetch_related('product_set')\
.filter('my-filter')\
.values('product','product__title')\
.annotate(total_ordered=models.Sum('quantity'),num_orders=models.Count('product'))
答案 0 :(得分:0)
这就是你想要的吗?
class OrderProducts(models.Model):
product = models.ForeignKey(Product, related_name='orders')
Product.objects.annotate(total_ordered=models.Sum('orders__quantity'),
num_orders=models.Count('orders__id'))