Jeff'in yorumunu yinelemek / genişletmek için, hedeflemeniz gerektiğini düşündüğüm, Seçim sınıfınızdaki bu nesneyle ilişkili oyların sayısını hesaplayan bir özelliktir:
class Choice(models.Model):
text = models.CharField(max_length=200)
def calculateVotes(self):
return Vote.objects.filter(choice=self).count()
votes = property(calculateVotes)
Ve sonra şablonunuzda şunları yapabilirsiniz:
{% for choice in choices %}
{{choice.choice}} - {{choice.votes}} <br />
{% endfor %}
Şablon etiketi, IMHO'nun bu çözüm için biraz abartı olduğunu, ancak korkunç bir çözüm de değil. Django'daki şablonların amacı, sizi şablonlarınızdaki koddan yalıtmaktır.
Yukarıdaki yöntemi denemek ve özellikleri önbelleğe ve sadece özellik için bir alt seçim oluşturmak veya yinelemeli / açık olacaksa, başımın kapalı emin değilim olarak hangi SQL ORM üretir görmek oy sayısı hesaplamak için sorguyu çalıştırın. Ancak, iğrenç sorgular oluşturuyorsa, görünümü her zaman kendiniz topladığınız verilerle mülkü doldurabilirsiniz.