Django模型,其中字段基于另一个字段,除非另有说明

时间:2016-09-06 18:43:20

标签: python django django-models

假设我有一个名为 Car 的django模型和另一个名为 UserCar 的模型,它有一个相关的汽车对象。

class Car(models.Model):
    name = models.CharField(max_length=100)
    mpg = models.DecimalField(max_digits=6, decimal_places=2, null=True)

class UserCar(models.Model):
    car = models.ForeignKey('Car')
    mpg = models.DecimalField(max_digits=6, decimal_places=2, null=True)

我想覆盖 UserCar 上的保存功能,以便如果没有指定mpg的值,则模型实例预先填充了mpg的值on相关的Car对象。

1 个答案:

答案 0 :(得分:3)

尝试使用以下内容:

class UserCar(models.Model):

    ... # your fields here


    # Override the save function here
    def save(self, *args, **kwargs):
        if self.mpg is None:
            self.mpg = self.car.mpg
        super(UserCar, self).save(*args, **kwargs)