How to add an annotation on distinct items?
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))
精彩评论