Здравствуйте, я работаю над приложением блога , и у меня есть модель:
class Post(models.Model):
title = models.CharField(max_length=255)
<..>
is_published = models.BooleanField(default=False)
time_publish = models.DateTimeField()
time_edit = models.DateTimeField(auto_now=True)
time_create = models.DateTimeField(auto_now_add=True)
И я хочу установить это, когда пользователь устанавливает is_published=True
и .save()
затем вызывается time_publish, чтобы сохранить текущее время.
Проблема в том, что я не знаю, какой маршрут мне выбрать.Перезаписать .save()
или сделать что-то с сигналами или как?Я был бы признателен за некоторые ссылки на Документы.
Извините, если это дублирование, но я не знаю, как назвать этот вопрос.
Обновление:
Так что спасибоМанджи я создал этот код, который работает:
def save(self, *args, **kwargs):
if self.pk is not None:
orig = Post.objects.get(pk=self.pk)
if not orig.time_publish and self.is_published:
self.time_publish = datetime.now()
elif not self.is_published:
self.time_publish = None
super(Post, self).save(*args, **kwargs)