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