Автоматическое перемещение данных в архивную таблицу, если дата старше
У меня есть модель галереи в моем 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 в таблице "Галерея".