Как изменить значение bool is_actual (DRF) - PullRequest
0 голосов
/ 06 января 2020

У меня есть два поля в Post модели -

def next_month():
    now = timezone.now()
    return now + relativedelta(months=+1)

created = models.DateTimeField(auto_now_add=True)
end_time = models.DateTimeField(default=next_month, blank=True, editable=False)

Итак, я хочу добавить поле is_actual = models.BooleanField(). Если end_time> now (), значение равно True. Я понимаю, что мне нужно использовать какую-то функцию, когда она запускается каждый день в 00:00, для проверки даты и изменения значения is_actual. Но я не знаю, как это сделать. Можете ли вы помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 06 января 2020

Вы можете ввести свойство is_actual в модель.

from django.utils.timezone import now


class Post():

  created = models.DateTimeField(auto_now_add=True)
  end_time = models.DateTimeField(default=next_month, blank=True, editable=False)

  @property
  def is_actual(self):
    return bool(self.end_time and self.end_time > now())
...