2012-02-26 59 views
0

我有表invoices與字段customer_id和其他字段。我需要每個用戶選擇的購買次數。通過invoices.id代替invoices.customer_idDjango GROUP_BY通過.annotate()

Invoice.objects.annotate(buy_count=Count('customer')).all() 

但這碼組和返回錯誤的結果:在SQL它應該是這樣的:

SELECT username, COUNT('customer_id') FROM `invoices` 
LEFT JOIN `auth_user` ON `auth_user`.id = `invoices`.customer_id 
GROUP BY `customer_id`, username 

在Django中我嘗試。

回答

1

我想你應該把它周圍,像:

Customer.objects.annotate(buy_count=Count('invoice')).all() 

在那裏,你會得到客戶的名單與他們的發票數量。