Django - перебор записей и обновление базы данных при определенных условиях с помощью запланированного задания

Как запустить запланированную задачу из примера файла задач scheduled_task.py для доступа к файлу models.py (например, Event) и при выполнении определенных критериев обновить одно из полей в базе данных (пример: event_status)?

models.py

class Events(models.Model):
    event_title = models.CharField(max_length=300)
    event_info = models.TextField(max_length=2000)
    event_date = models.DateField(default=now)
    event_time = models.TimeField(default='00:00')
    event_location = models.CharField(max_length=150)
    event_status = models.CharField(max_length=30, choices=EVENT_STATUS_CHOICES, default='New Event')

   def save(self, *args, **kwargs):
        if date.today() > self.event_date:
            self.event_status = 'Completed Event'
        super(Events, self).save(*args, **kwargs)

Каким должен быть код, чтобы перебрать все события из базы данных и обновить запись?
scheduled_task.py

from models import Events

def verify_events():
    all_events = Events.objects.all()
    for event in all_events:
        if event.event_date < date.today():
            event.event_status = 'Completed Event'
            event.save()

Код выполняется, но ничего не происходит (нет ошибки), db не обновляется с изменениями. Текущая функция save() для Events в models.py выполняет работу, когда вы обновляете страницу, она запускает функцию save(), но я хочу, чтобы она всегда обновлялась без обновления страницы вручную для запуска функции save() - чтобы это происходило в течение ночи (я использую Tasks в PythonAnywhere).

Неправильно ли event.save()? Не сохраняется при интеграции через События? Спасибо за помощь

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