Как в django можно автоматически удалить данные из базы данных через 24 часа?
Я хочу сделать клон instagram с помощью django. Я пытаюсь сделать истории instagram на Django Models.Как вы знаете, истории instagram удаляются через 24 часа. Как я могу удалить данные из базы данных?
Просто отфильтруйте их. Вы можете сделать модель, которая выглядит следующим образом:
class MyModel(models.Model):
# …
timestamp = models.DateTimeField(auto_now_add=True, db_index=True)
тогда вы можете получить только MyModel объекты, возраст которых не более 24 часов с помощью:
from datetime import timedelta
from django.db.models.functions import Now
MyModel.objects.filter(timestamp__gte=Now()-timespan(days=1))
вы можете иногда запускать команду управления, которая удаляет старые MyModels с:
from datetime import timedelta
from django.db.models.functions import Now
MyModel.objects.filter(timestamp__lt=Now()-timespan(days=1)).delete()