About Deleting Versions for a Particular Image with django-imagekit
The django-imagekit library creates image versions with filenames based on hashed values. That's quite tricky to track. Here is an example function to find existing versions and delete them from the file system:
def delete_versions(source):
from django.core.files.storage import default_storage
from imagekit.registry import generator_registry
from imagekit.cachefiles import ImageCacheFile
for id in generator_registry.get_ids():
generator = generator_registry.get(id, source=source)
image_cache_file = ImageCacheFile(generator)
if default_storage.exists(image_cache_file.name):
default_storage.delete(image_cache_file.name)
Then you can call it for an image field:
post = Post.objects.get(slug="hello-world")
delete_versions(post.cover_image)
Tips and Tricks Programming Development Django 4.2 Django 3.2 Django 2.2 Pillow django-imagekit
Also by me
Django Paddle Subscriptions app
For Django-based SaaS projects.
Django GDPR Cookie Consent app
For Django websites that use cookies.