Django admin在保存mod时填充一个字段

2024-04-24 22:31:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型

class MyModel(models.Model):
    title = models.CharField(max_length=100)
    net_price = models.IntegerField(default=0)
    sold_price = models.IntegerField(default=0)
    profit = models.IntegerField(default=0, blank=True, null=True)

在管理中,当我给出net_pricesold_price并保存它时,我希望利润能自动计算出来。我该怎么做?在


Tags: 模型truedefaultnetmodeltitlemodelslength
1条回答
网友
1楼 · 发布于 2024-04-24 22:31:19

您可以在模型中添加^{}方法来计算profit的值(如果没有提供)。在

如果该值不是由管理员提供的,那么这样做将在实例上设置profit属性。在

class MyModel(models.Model):
    title = models.CharField(max_length=100)
    net_price = models.IntegerField(default=0)
    sold_price = models.IntegerField(default=0)
    profit = models.IntegerField(default=0, blank=True, null=True)

    def clean(self):
        if getattr(self, 'profit', None) is None: # check that current instance has 'profit' attribute not set
            self.profit = self.sold_price - self.net_price # calculate and assign 'profit'

相关问题 更多 >