【发布时间】:2013-07-13 18:46:14
【问题描述】:
所以我正在制作一个费用表 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 %}
但是是的...当我加载页面时,什么都没有出现。有人可以帮忙吗?
【问题讨论】:
-
有解决方案吗?有同样的问题
标签: django django-custom-manager