Не могу редактировать булево поле в модели django, когда оно связано с другим полем из той же модели в рамках этой логической сенсации?
Я работаю над django v4.* и столкнулся с тем, что мне нужно сделать так, чтобы поле publish_date
автоматически заполнялось, когда is_published is ticked
import datetime
class Article(models.Model):
.......
is_published = models.BooleanField(default=False)
publish_date = models.DateTimeField(blank=True, null=True)
.......
def save(self, *args, **kwargs):
if self.is_published:
self.publish_date = datetime.datetime.now()
super().save(*args, **kwargs)
это помогло, но проблема в том, что я больше не могу редактировать поле is_published
,
когда я отмечаю его (делаю его истинным), оно остается истинным, даже если я пытаюсь изменить его на не отмеченное
Теперь ваше действие сохранения является частью оператора if:. Опустите его на уровень отступа, чтобы оно всегда завершало функцию
def save(self, *args, **kwargs):
if self.is_published:
self.publish_date = datetime.datetime.now()
super().save(*args, **kwargs)