有没有办法在建立后的指定时间内删除模型?基本上,我想只保留24小时的模型,以便在达到此持续时间后到期。Django计划删除
0
A
回答
2
只需创建一个celery任务即可删除模型。使用post-save
信号处理程序为模型触发芹菜删除任务(延迟24小时)(当created
为True
时)。
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)
)
+0
我不熟悉芹菜或如何将其与模型整合。你可以包含代码示例吗? –
+0
['celery'](http://celery.readthedocs.org/en/latest/)是一个非常成熟和有据可查的工具,您将会体会到学习的乐趣。 – dgel
相关问题
- 1. 如何删除计划的Toast通知
- 2. 执行计划 - 删除密钥查找
- 3. 弹珠计划不能删除
- 4. 删除/创建计划任务
- 5. 计划从列表中删除
- 6. 计划CronJob /备份和删除
- 7. Gitlab问题 - 计划删除但从未删除的项目
- 8. 删除下划线
- 9. Django:实施推荐计划
- 10. Django - 设置计划任务?
- 11. Django删除GenericForeignKey
- 12. 的Django:删除
- 13. 策划:删除子列表
- 14. 下划线被删除
- 15. Django app.py删除配置中的下划线
- 16. 如何在django无尽的分页中删除下划线?
- 17. Kendo计划清除选择
- 18. django strip /删除/清除值
- 19. Django删除对象
- 20. Django删除表单
- 21. Django - 逻辑删除
- 22. 删除Django迁移
- 23. Django删除确认
- 24. Django删除时区
- 25. Django删除异物?
- 26. 如何删除sidekiq上的所有计划任务
- 27. 试图通过计划任务和VBScript删除文件
- 28. 想不出如何删除列表中的数位 - 计划
- 29. 删除/比较字符串值与列表 - 计划
- 30. 从iOS开发者计划中删除成员的Infact。
记住,我不想通过时间字段进行筛选。我想实际删除。 –
是否必须立即删除它,还是将其保留为活动状态,但标记为删除,并且每天要将脚本清理干净并清理N次? – NightShadeQueen
我想立即删除。 –