如何查询计数?

时间:2010-11-26 00:23:53

标签: django django-orm

我有一个查询,

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

不起作用的部分是items__count=0。出价与物品有多对多的关系。我需要检查此出价是否有0件商品。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

聚合

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

查看doc,阅读样本,你会找到答案

答案 1 :(得分:1)

对于记录(已经有一个已接受的答案,带有Django聚合文档的链接),OP需要的是:

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