Django计划删除

2024-04-25 21:58:42 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在创建模型后的指定时间段内删除模型?基本上,我只想保留一个模型24小时,这样在达到这个期限后它就过期了。你知道吗


Tags: 模型小时时间段期限办法
1条回答
网友
1楼 · 发布于 2024-04-25 21:58:42

只需创建一个celery任务来删除模型。使用^{}信号处理程序触发模型的芹菜删除任务(延迟24小时)(当createdTrue)。你知道吗


from celery import shared_task

@shared_task
def delete_model(model_pk):
    try:
        MyModel.objects.get(pk=model_pk).delete()
    except MyModel.DoesNotExist:
        pass

from django.dispatch import receiver
from django.db.models.signals import post_save
from datetime import datetime, timedelta

@receiver(post_save, sender=MyModel)
def model_expiration(sender, instance, created, **kwargs):
    if created:
         delete_model.apply_async(
            args=(instance.pk,), 
            eta=datetime.utcnow() + timedelta(hours=24)
         )

相关问题 更多 >