Автоматическое перемещение данных в архивную таблицу, если дата старше

У меня есть модель галереи в моем models.py. Я хочу автоматически перемещать данные в другую таблицу под названием Archive, если дата создания превышает 30 дней.

Это мой models.py

class Gallery(models.Model):
    id= models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images/')
    video = models.FileField(upload_to='videos/', validators=[FileExtensionValidator( ['mp4', 'mov', 'mkv'] )])
    tag = models.CharField(max_length=100)
    classes = models.ForeignKey(Classes, null=True, blank=True, on_delete=models.CASCADE)
    level = models.ForeignKey(Level, null=True, blank=True, on_delete=models.CASCADE)
    uploded_date = models.DateTimeField(auto_now_add=True)
    

class Archive(models.Model):
    id= models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images/')
    video = models.FileField(upload_to='videos/', validators=[FileExtensionValidator( ['mp4', 'mov', 'mkv'] )])
    tag = models.CharField(max_length=100)
    classes = models.ForeignKey(Classes, null=True, blank=True, on_delete=models.CASCADE)
    level = models.ForeignKey(Level, null=True, blank=True, on_delete=models.CASCADE)
    uploded_date = models.DateTimeField(auto_now_add=True)
    

Я подумал о создании сигналов и отправке сигналов в Archive следующим образом. Я уже определил сигнал.

def date_is_old(self):
        if self.uploded_date > (datetime.datetime.now()-timedelta(days=15)):
            date_is_old.send(self.__class__)

Но этот метод кажется неэффективным, так как он посылает сигнал только в момент создания новой записи. Мне нужно, чтобы функция всегда проверяла и, если запись создана более 30 дней назад, автоматически перемещала данные в архив. Есть ли какой-нибудь способ сделать это? Я действительно не имею возможности попробовать модифицировать методы create и save в таблице "Галерея".

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