Как я могу определить значение по умолчанию поля модели django как значение другого поля?

В моей модели есть эти два поля:

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!

Есть предложения?

Переписать метод сохранения на модели.

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.
Вернуться на верх