【问题标题】:Django model where field is based on another field unless specified otherwise除非另有说明,否则字段基于另一个字段的 Django 模型
【发布时间】:2016-09-06 18:43:19
【问题描述】:

假设我有一个名为 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 对象。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    尝试使用以下方法:

    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)
    

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 2014-12-25
      • 2011-05-21
      • 2019-03-11
      • 2021-10-09
      • 2019-02-16
      • 2020-06-23
      • 2015-10-06
      • 2021-10-05
      相关资源
      最近更新 更多