Есть ли способ удалить модель после определенного количества времени с момента создания? В принципе, я хочу сохранить модель всего лишь на двадцать четыре часа, чтобы она закончилась после того, как эта продолжительность была достигнута.Django Scheduled Deletion
ответ
Просто создайте задачу 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)
)
Я не знаком с сельдереем или как интегрировать его с моделью. Не могли бы вы включить образец кода? –
['celery'] (http://celery.readthedocs.org/en/latest/) - очень зрелый и хорошо документированный инструмент, который вам понравится. – dgel
- 1. Django Admin & Model Deletion
- 2. Batch File Deletion
- 3. SQL: Complex Deletion
- 4. pyinotify file deletion user
- 5. Deletion GC ArrayList Java
- 6. ASP.net Gridview Row Deletion
- 7. C++ AVL Tree Deletion
- 8. Dynamic Array C++ (Deletion)
- 9. Intercept FIleSytemCall for Deletion
- 10. Parse - Array Value Deletion
- 11. NHibernate No Physical Deletion
- 12. BST Deletion C++
- 13. HashMap iteration/Deletion
- 14. MySQL Query Deletion
- 15. UICollectionView Cell Deletion
- 16. Deletion Form For Laravel App
- 17. JavaScript: обнаружение объекта Property Deletion
- 18. Double Linked List - Node Deletion
- 19. BST Node Deletion Confusion [JaVa]
- 20. Trigger @Scheduled метод
- 21. вручную вызвать метод @Scheduled
- 22. Multi-thread @Scheduled Springboot
- 23. Spring @Scheduled аннотация
- 24. различной Scheduled Tasks'
- 25. Custom @Scheduled Spring
- 26. Завершение задачи @Scheduled весной
- 27. Scheduled ssis insert row
- 28. Spring Boot @Scheduled cron
- 29. Как протестировать Spring @Scheduled
- 30. Scheduled disk scan
Имейте в виду, что я не хочу, чтобы фильтровать по полям времени. Я хочу удалить. –
Нужно ли его немедленно удалить или было бы хорошо оставить его в живых, но помечено для удаления, и просто нужно выполнить скрипт и очистить вещи до N раз в день? – NightShadeQueen
Я хотел бы удалить сразу. –