में कस्टम मैनेजर फ़ंक्शन को कॉल करना तो मैं एक व्यय शीट django ऐप बना रहा हूं और मैं सभी इनपुट व्यय के योग को प्रस्तुत करने की कोशिश कर रहा हूं।django टेम्पलेट्स
मैं एक कस्टम प्रबंधक बनाने के बाद योग की गणना करने के लिए:
class ExpenseManager(models.Manager):
def price_sum(self):
return super(ExpenseManager, self).aggregate(total_price = Sum('price'))['total_price']
और मेरे मॉडल के लिए यह कहा:
class Expense(models.Model):
...
objects = models.Manager()
price_object = ExpenseManager()
...
मैं जानता हूँ कि मेरे प्रबंधक काम करता है क्योंकि जब मैं इसे खोल में निष्पादित मुझे अपने खर्चों का सही योग मिलता है - यानी मैंने Expense.price_object.price_sum()
में रखा है और मुझे Decimal('254.77')
वापस मिल गया है - लेकिन जब मैं इसे अपने टेम्पलेट में प्राप्त करने का प्रयास करता हूं तो यह केवल खाली दिखाई देता है।
मैं अपने चर में एक जोड़े को अलग अलग तरीकों से डालने की कोशिश की है, लेकिन यह से कोई भी काम किया है, उदाहरण के लिए:
{{price_object.price_sum}}
या
{{expense.price_object.price_sum}}
या मुझे हताश हो रही ...
{% for p in expense.price_object %} {{p.price_sum}} {% endfor %}
या
{% for p in expense.price_object.price_sum %} {{p}} {% endfor %}
लेकिन हाँ ... जब मैं पृष्ठ लोड करता हूं तब कुछ भी दिखाई नहीं देता है। क्या कोई मदद कर सकता है?
आपने इसे टेम्पलेट में कैसे कॉल किया? – sha256
@ sha256, जैसा कि डैनियल रोज़मन के उत्तर में है, आपको केवल टेम्पलेट में मॉडल क्लास ऑब्जेक्ट पास करने की आवश्यकता है। – dragoon
दोनों anwsers के लिए +1। सहायक – sha256