Как я могу определить значение по умолчанию поля модели 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.