Ответ 1
У меня была та же проблема, и я нашел разрешение здесь: http://www.djangofoo.com/182/filter-annotate-count
packages = Package.objects.annotate(bid_count=Count('items__bids', distinct = True))
У меня есть запрос...
packages = Package.objects.annotate(bid_count=Count('items__bids'))
который должен дать мне список пакетов с количеством ставок каждый. Он отлично работает, если в пакете есть только один элемент, но если его больше, то он считается двойным.
Каждый пакет состоит из 1 или более элементов. Каждая ставка помещается в 1 или более пунктов внутри пакета. Я хочу получить количество ставок, размещенных на элементах этого пакета.
Если в пакете есть 1 ставка, помещенная на 2 элемента, в настоящее время это будет считаться 2, я хочу, чтобы она вернула 1.
Я попробовал Count('items__bids__distinct')
, но это не сработало. Как я могу это сделать?
У меня была та же проблема, и я нашел разрешение здесь: http://www.djangofoo.com/182/filter-annotate-count
packages = Package.objects.annotate(bid_count=Count('items__bids', distinct = True))