Как добавить аннотацию на отдельные элементы? - PullRequest
34 голосов
/ 29 октября 2010

У меня есть запрос ...

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

Что должно дать мне список пакетов с количеством ставок на каждую. Это прекрасно работает, если в упаковке есть только один предмет, но если его больше, он учитывается дважды.

Каждая упаковка состоит из 1 или более предметов. Каждая ставка размещается на 1 или более предметов в пакете. Я хочу получить количество ставок, размещенных на предметах в этом пакете.

Если на 2 предмета в пакете сделана 1 ставка, в настоящее время это будет считаться 2, я хочу, чтобы она вернулась 1.

Я пытался Count('items__bids__distinct'), но это не сработало. Как я могу это сделать?

1 Ответ

88 голосов
/ 30 декабря 2011

У меня была такая же проблема, и я нашел разрешение здесь: http://www.djangofoo.com/182/filter-annotate-count

packages = Package.objects.annotate(bid_count=Count('items__bids', distinct = True))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...