2010-11-26 56 views
0

我有一個查詢,如何查詢計數?

Bid.objects.filter(shipment=shipment, status=BidStatuses.ACCEPTED, user=request.user, items__count=0).exists()  

的部分不工作是items__count=0。投標與商品有多對多的關係。我需要檢查此出價是否有0個項目。我怎樣才能做到這一點?

回答

2

聚集。

http://docs.djangoproject.com/en/1.2/topics/db/aggregation/

看時,讀取樣品的文檔,你會找到答案

+0

`Book.objects.annotate(num_authors = Count('authors'))。filter(num_authors__gt = 1)`。沒有想到註釋,然後過濾在相同的查詢出於某種原因....使用其他地方的註釋。 – mpen 2010-11-26 06:24:40

1

爲了記錄(已經有一個鏈接到Django的聚合文檔的接受的答案),什麼OP需要的是:

Bid.objects.annotate(item_num=models.Count('items')).filter(shipment=shipment, status=BidStatuses.ACCEPTED, user=request.user, item_num=0).exists() 
+0

我把2和2放在了一起,不過謝謝你多走了一會兒,然後把它拼出來:) – mpen 2010-11-26 08:23:28