Чтобы получить количество голосов за определенный элемент, вы должны использовать:
vote_count = Item.objects.filter(votes__contest=contestA).count()
Если вы хотите разбить распределение голосов в конкретном конкурсе, я бы сделал что-то вроде следующего:
contest = Contest.objects.get(pk=contest_id)
votes = contest.votes_set.select_related()
vote_counts = {}
for vote in votes:
if not vote_counts.has_key(vote.item.id):
vote_counts[vote.item.id] = {
'item': vote.item,
'count': 0
}
vote_counts[vote.item.id]['count'] += 1
Это создаст словарь, который отображает элементы в число голосов.Это не единственный способ сделать это, но он довольно легок в обращениях к базе данных, поэтому будет работать довольно быстро.