我正在制作一个基于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()
...
我知道我的经理是有效的,因为当我在shell中执行它时,我得到了正确的支出总和--即我输入
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 %}
但是...当我加载页面时,没有任何内容显示。有人能帮忙吗?