[英]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.