18 lines
544 B
Python
18 lines
544 B
Python
from django.db import transaction
|
|
from django.db.models.signals import post_delete
|
|
|
|
from wagtail.documents import get_document_model
|
|
from wagtail.tasks import delete_file_from_storage_task
|
|
|
|
|
|
def post_delete_file_cleanup(instance, **kwargs):
|
|
transaction.on_commit(
|
|
lambda: delete_file_from_storage_task.enqueue(
|
|
instance.file.storage.deconstruct(), instance.file.name
|
|
)
|
|
)
|
|
|
|
|
|
def register_signal_handlers():
|
|
Document = get_document_model()
|
|
post_delete.connect(post_delete_file_cleanup, sender=Document)
|