我有这样的模型:
class PledgeItem(models.Model):
title = models.CharField(...)
usd_amount = models.DecimalField(...)
class Pledger(models.Model):
name = models.CharField(...)
...
class Pledge(models.Model):
pledger = models.ForeignKey(Pledger)
item = models.ForeignKey(PledgeItem)
usd_amount = models.DecimalField(...)
...
PledgeItem
有一种方法可以计算出认捐的百分比(例如,一个项目可能花费100美元,有3个认捐,每个20美元,这意味着认捐了60%):
class PledgeItem(models.Model):
...
def percentage_pledged(self):
pledge_total = Pledge.objects.filter(item = self).sum(usd_amount)
return (pledge_total / self.usd_amount) * 100
self.usd_amount
Pledges
在
(虽然我不得不问,为什么
sum(field)
None
percentage_pledged
在列表中
n
PledgeItems
.有没有一种不使用的优雅方法来解决这个问题
save
更新信号a
场?如果我能以某种方式预取这些数据(即获取所有数据),那就太好了
承诺
承诺
活?),但我确信这是一个常见的问题(以前也困扰过我),所以我想看看那些对Django更有经验的人是如何解决这个问题的。也许吧
信号是它的归属,特别是对于“低写、高读”类型的站点。