Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django计划删除_Python_Django - Fatal编程技术网

Python Django计划删除

Python Django计划删除,python,django,Python,Django,是否有方法在创建后的指定时间段内删除模型?基本上,我只想保留一个模型24小时,这样它在达到这个持续时间后就会过期。只需创建一个任务来删除该模型。使用信号处理程序触发模型的芹菜删除任务(延迟24小时)(当创建的为True时) 请记住,我不想过滤时间字段。我想实际删除。它是否必须立即删除,或者是否可以让它保持活动状态,但标记为删除,然后让一个脚本一天清理N次?我想立即删除。我不熟悉芹菜或如何将其与模型集成。你能提供一个代码示例吗?是一个非常成熟且有良好文档记录的工具,您将非常喜欢学习。 from

是否有方法在创建后的指定时间段内删除模型?基本上,我只想保留一个模型24小时,这样它在达到这个持续时间后就会过期。

只需创建一个任务来删除该模型。使用信号处理程序触发模型的芹菜删除任务(延迟24小时)(当创建的
True
时)




请记住,我不想过滤时间字段。我想实际删除。它是否必须立即删除,或者是否可以让它保持活动状态,但标记为删除,然后让一个脚本一天清理N次?我想立即删除。我不熟悉芹菜或如何将其与模型集成。你能提供一个代码示例吗?是一个非常成熟且有良好文档记录的工具,您将非常喜欢学习。
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)
         )