Skip to main content
 首页 » 编程设计

python之除非另有说明,否则字段基于另一个字段的 Django 模型

2024年08月22日2798°冷暖

假设我有一个名为 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 的值相关的 Car 对象。

请您参考如下方法:

尝试使用以下内容:

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)