Изменение поля BooleanField при каждом обновлении объекта

У меня есть модель со свойством changed, которое я хотел бы менять на True при изменении модели. Но, конечно, я не хочу устанавливать его в True при создании объекта.

class SomeModel(models.Model):
  changed = models.BooleanField(default=False, blank=True, null=True)

" при создании объекта." Я не совсем правильно понимаю это. Но я предполагаю, что по умолчанию вы хотите установить его в null. Если так, то:

changed = models.BooleanField(default=Null, blank=True, null=True)

Решило ли это вашу проблему?

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

class SomeModel(models.Model):
  changed = models.BooleanField(default=False) # no need to use null=True, it would add a third possibility to the boolean (null, True, False) but you could use: 
  # changed = models.BooleanField(default=False, editable=False)
  
  def save(self, *args, **kwargs):
    if self._state.adding is False:
      self.changed = True
    super().save(*args, **kwargs)

Редактирование: исправлена опечатка с self._state на self._state.adding

Вернуться на верх