在相关模型中将字段指定为另一个模型中的默认值

时间:2016-10-01 08:21:55

标签: python django database sqlite django-models

如何将current_amount的默认值指定为minimum_price?

class Auction(models.Model):
    minimum_price = models.PositiveIntegerField()
    .....

class Bid(models.Model):
    product = models.ForeignKey(Auction, related_name='auction')
    # i want to set this field's default to value of minimum_price from Auction model
    current_amount = models.PositiveIntegerField(default=product__minimum_price)
    #also tried default=product.minimum_price

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

一个解决方案是

class Bid(models.Model):
    product = models.ForeignKey(Auction, related_name='auction')
    current_amount = models.PositiveIntegerField()

    def save(self, *args, **kwargs):
        if not self.current_amount:
            self.current_amount = self.product.minimum_price
        super(Bid, self).save(*args, **kwargs)