我知道答案很简短,因为我试过了。有没有办法实现这一点(即使只是因为黑客攻击)?
class Ticket(models.Model):
account = modelfields.AccountField()
uuid = models.CharField(max_length=36, unique=True)
created = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ['created']
@property
def repair_cost(self):
# cost is a @property of LineItem(models.Model)
return self.lineitem_set.aggregate(models.Sum('cost'))
答案 0 :(得分:21)
没有。任何通过内置管理器的东西都必须是一个真实的领域,因为它们只触及数据库。为了使用属性,他们必须将表中的每条记录转换为模型,然后在Python中过滤它们。
答案 1 :(得分:4)
我有类似的情况,并希望完全相同的功能。我用以下几行解决了这个问题:
...
return sum(lt.cost for lt in self.lineitem_set)