Чтобы повторить / расширить комментарий Джеффа, я думаю, что вы должны стремиться к простому свойству в классе Choice, которое вычисляет количество голосов, связанных с этим объектом:
class Choice(models.Model):
text = models.CharField(max_length=200)
def calculateVotes(self):
return Vote.objects.filter(choice=self).count()
votes = property(calculateVotes)
И тогда в вашем шаблоне вы можете сделать:
{% for choice in choices %}
{{choice.choice}} - {{choice.votes}} <br />
{% endfor %}
Тег шаблона, IMHO, немного излишним для этого решения, но это тоже не страшное решение. Цель шаблонов в Django - изолировать вас от кода в ваших шаблонах и наоборот.
Я попробую описанный выше метод и посмотрю, какой SQL генерирует ORM, так как я не уверен, что он будет предварительно кэшировать свойства и просто создаст отбор для свойства или будет итеративно По требованию запустите запрос для подсчета голосов. Но если он генерирует жестокие запросы, вы всегда можете заполнить свойство по вашему мнению данными, которые вы собрали самостоятельно.