我知道简短的答案,因为我试过了。有什么办法可以做到这一点(即使只是因为黑客攻击)?
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'))
最佳答案
不。任何通过内置管理器的东西都必须是一个真实的字段,因为它们只接触数据库。为了使用属性,他们必须将表中的每条记录转换为模型,然后在 Python 中过滤它们。
关于Django - 您可以将属性用作聚合函数中的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3066491/