我试图将django模型的计算属性用于自定义管理器,以实现自定义结果。但是django只允许将常规属性用于管理器。
我已经尝试将@property添加到我的计算属性中,但无法正常工作。
这是我的代码:
class Produto(models.Model):
nome = models.CharField(max_length=100)
fabricante = models.ForeignKey('Fabricante', on_delete=models.PROTECT)
frete_ipi = models.DecimalField(decimal_places=2, max_digits=10)
price = models.DecimalField(decimal_places=2, max_digits=10)
cost_price = models.DecimalField(decimal_places=2, max_digits=10)
@property
def real_cost_price(self):
p = (self.cost_price * self.frete_ipi) + self.cost_price
return round(p, 2)
我正在尝试将“ real_cost_price”用于我的经理,并且无法正常工作。
class EstoqueCentroManager(models.Manager):
def total_venda(self):
total = self.all().aggregate(valor=Sum(F('quantidade') * F('produto__real_cost_price'), output_field=FloatField()))
return total
如何在我的经理中使用此计算属性“ real_cost_price”?还是有其他方法可以实现这种结果?
谢谢!