gpt4 book ai didi

python - 基于 Django 模型内部方法的计算字段

转载 作者:行者123 更新时间:2023-12-01 00:57:25 24 4
gpt4 key购买 nike

如何自动填充 PurchasingOrder 模型中的字段:

class PurchasedOrder(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.IntegerField()


@property
def batch_cost(self):
return self.quantity * self.product.unit_price

def __str__(self):
return self.product.name

如果我将其定义为属性,我将无法使用该属性进行过滤和填充。我希望它是一个计算字段。

我尝试了以下方法,但没有成功:

def calculate_batch_cost(self):
return self.quantity * self.product.unit_price

batch_cost = models.FloatField(default=calculate_batch_cost)

我将感谢您的帮助<3

最佳答案

如果需要指定此字段并在创建或更新对象时随时更改,则可以将其添加到保存函数中:

def save(self, *args, **kwargs):
self.batch_cost = self.calculate_batch_cost()
super(PurchasedOrder, self).save(*args, **kwargs)

当然,您需要在模型中添加字段

batch_cost = models.FloatField()

然后您仍然可以在代码中的其他位置使用 calculate_batch_cost 函数。

关于python - 基于 Django 模型内部方法的计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56135591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com