जेफ की टिप्पणी पर प्रतिध्वनित / विस्तार करने के लिए, मुझे लगता है कि आपको जो लक्ष्य करना चाहिए, वह आपके चॉइस क्लास में एक संपत्ति है जो उस वस्तु से जुड़े वोटों की संख्या की गणना करता है:
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 क्या उत्पन्न करता है क्योंकि मुझे यकीन नहीं है कि यह मेरे सिर के ऊपर से निकलेगा, अगर यह गुणों को प्री-कैश कर देगा और संपत्ति के लिए सबसिलेक्ट बना देगा या यदि यह iteratively / on- वोट संख्या की गणना करने के लिए क्वेरी चलाएं। लेकिन अगर यह नृशंस प्रश्न उत्पन्न करता है, तो आप हमेशा अपने द्वारा एकत्र किए गए डेटा के साथ अपने विचार में संपत्ति को आबाद कर सकते हैं।