相关疑难解决方法(0)

Django - 基于另一个字段更新模型字段

我是 Django 和 Python 的新手,我想做一些我曾经在 Java EE 中经常做的事情。

考虑以下模型(仅相关类):

class Item(models.Model):
    name = models.CharField(max_length=40)
    default_price = models.DecimalField(max_digits=6, decimal_places=2, default=50)

    def __unicode__(self):
        return self.name


class SaleDetail(models.Model):
    item = models.ForeignKey(Item)
    deposit = models.ForeignKey(Deposit)
    quantity = models.PositiveIntegerField()
    unit_price = models.DecimalField(max_digits=6, decimal_places=2)
    sale = models.ForeignKey(Sale)

    def item_updated(self, value):
        if self.unit_price == None:
            self.unit_price = value
Run Code Online (Sandbox Code Playgroud)

我想要做的是,每一个时间Item被添加到SaleDetail,更新SaleDetail.unit_priceItem.default_price是否SaleDetail是新的或没有unit_price设置。

我过去在 Java POJO 中所做的是将这个逻辑包含在 setter 方法中。我尝试使用 python 属性来封装item属性,但 Django 直接在引擎盖下更新该字段,因此这会破坏一些自动功能。

我还尝试将 ForeignKey 子类化以接受回调函数,但我找不到在容器类上调用方法的方法。

我想这样做,所以我可以为 …

python django orm field model

6
推荐指数
1
解决办法
5573
查看次数

标签 统计

django ×1

field ×1

model ×1

orm ×1

python ×1