Изменение поля 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