如何查询计数?

问题描述:

我有一个查询,如何查询计数?

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

的部分不工作是items__count=0。投标与商品有多对多的关系。我需要检查此出价是否有0个项目。我怎样才能做到这一点?

聚集。

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

为了记录(已经有一个链接到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