开发者

How to add an annotation on distinct items?

开发者 https://www.devze.com 2023-01-22 17:10 出处:网络
I\'ve got a query... packages = Package.objects.annotate(bid_count=Count(\'items__bids\')) Which is supposed to give me a list of packages with the开发者_JAVA技巧 number of bids each. It works grea

I've got a query...

packages = Package.objects.annotate(bid_count=Count('items__bids'))

Which is supposed to give me a list of packages with the开发者_JAVA技巧 number of bids each. It works great if there's only one item in the package, but if there's more it double counts.

Each package consists of 1 or more items. Each bid is placed on 1 or more items within a package. I want to retrieve the number of bids placed on the items within that package.

If there is 1 bid placed on 2 items within a package, presently this will count as 2, I want it to return 1.

I tried Count('items__bids__distinct') but that didn't work. How can I do this?


I had the same problem and I found the resolution:

packages = Package.objects.annotate(bid_count=Count('items__bids', distinct = True))
0

精彩评论

暂无评论...
验证码 换一张
取 消