如何在django中24小时后自动删除数据库上的数据?

Ber*_*kay 2 python django django-models django-rest-framework

我想用 django 制作一个 Instagram 克隆。我正在尝试在 Django Models 上制作 Instagram 故事。如您所知,Instagram 故事会在 24 小时后删除。如何从数据库中删除数据?

Wil*_*sem 6

把这些过滤掉就可以了。您可以制作一个如下所示的模型:

class MyModel(models.Model):
    # …
    timestamp = models.DateTimeField(auto_now_add=True, db_index=True)
Run Code Online (Sandbox Code Playgroud)

那么您可以使用以下命令仅检索MyModel最多 24 小时的对象:

from datetime import timedelta
from django.db.models.functions import Now

MyModel.objects.filter(timestamp__gte=Now()-timespan(days=1))
Run Code Online (Sandbox Code Playgroud)

您偶尔可以运行管理命令来删除旧的MyModels:

from datetime import timedelta
from django.db.models.functions import Now

MyModel.objects.filter(timestamp__lt=Now()-timespan(days=1)).delete()
Run Code Online (Sandbox Code Playgroud)