2016-01-10 67 views
0

我有這種模式的繁殖:的Django組由查詢設置,並與另一場

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我有。但是,我需要爲每個訂單產品添加每個訂單產品數量的總數量。

如果我有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

這是你想要的嗎?

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')) 
+0

我的榮幸。如果它適合你,請將答案標記爲已接受,以便其他人可以依靠它。 –

+0

我感謝你的回答。但我不認爲這是我正在尋找的。我需要添加分組的每個數量的每個查詢。要將每個產品的編號分組並知道所有相同查詢的總數量。 –

+0

你能解釋一下「每個產品分組的數量」是什麼意思?你有什麼'ProductGroup'什麼的?使用所有相關模型擴展您的帖子也會有很大的幫助。 –