簡體   English   中英

如何將 django 模型的字段默認值定義為另一個字段值?

[英]How can I define a django model's field default value to be another field value?

在我的 model 中,我有這兩個字段:

start_bid = models.IntegerField(default=0)
max_bid =  models.IntegerField(default="the start_bid value")

start_bid將由用戶通過 Django ModelForm 添加一次。 max_bid可能會改變,也可能不會。 所以我需要'max_bid'的第一個值是用戶輸入的start_bid值,然后如果它發生變化,它將被更新。

簡而言之,我需要max_bid的初始值等於start_bid

有什么建議么?

覆蓋 model 上的保存方法。

def save(self, force_insert=False, force_update=False, using=None,  update_fields=None):  
        if self._state.adding: 
            self.max_bid = self.start_bid
        super().save(force_insert, force_update, using, update_fields)

這是解決方案:

class Bid(models.Model):
          start_bid = models.IntegerField(default=0)
          max_bid =  models.IntegerField()
          
          def save(self,*args,**kwargs): 
               if not self.max_bid:
                   self.max_bid = self.start_bid   
                
               super(Bid,self).save(*args,**kwargs) #here Bid is my model name. Don't forget to replace Bid with your model name.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM