Echo / étendre sur Jeff commentaire, ce que je pense que vous devriez viser est simplement une propriété dans votre Choix de classe qui calcule le nombre de voix associée à cet objet:
class Choice(models.Model):
text = models.CharField(max_length=200)
def calculateVotes(self):
return Vote.objects.filter(choice = self).count()
votes = property(calculateVotes)
Et puis dans votre modèle, vous pouvez le faire:
{% for choice in choices %}
{{choice.choice}} - {{choice.votes}} <br />
{% endfor %}
La balise de modèle, est à mon humble avis un peu overkill pour cette solution, mais ce n'est pas terrible une solution. L'objectif de modèles dans Django est d'isoler vous de code dans vos templates et vice-versa.
Je vais essayer la méthode ci-dessus et voir ce que SQL l'ORM génère que je ne suis pas sûr du haut de ma tête si elle sera pré-cache les propriétés et il suffit de créer une sous-sélection pour le bien ou s'il sera de manière itérative sur demande exécutez la requête pour calculer le décompte des voix. Mais si elle génère atroce requêtes, vous pouvez toujours remplir le bien de votre point de vue avec les données que vous avez collectées vous-même.