有沒有辦法在建立後的指定時間內刪除模型?基本上,我想只保留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
我想立即刪除。 –