【问题标题】:How can I delete a data on db automatically after 24 hours in django?如何在 django 24 小时后自动删除 db 上的数据?
【发布时间】:2022-02-08 06:27:10
【问题描述】:

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

【问题讨论】:

    标签: python django django-models django-rest-framework


    【解决方案1】:

    只需过滤掉这些。您可以制作如下所示的模型:

    class MyModel(models.Model):
        # …
        timestamp = models.DateTimeField(auto_now_add=True, db_index=True)

    那么您只能检索最多 24 小时前的 MyModel 对象:

    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()

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多