mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-04-08 15:31:00 +00:00
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from django.db.models.loading import cache
|
|
from django.core.management.base import BaseCommand, CommandError
|
|
from optparse import make_option
|
|
from imagekit.utils import get_spec_files
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = ('Clears all ImageKit cached files.')
|
|
args = '[apps]'
|
|
requires_model_validation = True
|
|
can_import_settings = True
|
|
|
|
def handle(self, *args, **options):
|
|
return flush_cache(args, options)
|
|
|
|
def flush_cache(apps, options):
|
|
""" Clears the image cache
|
|
|
|
"""
|
|
apps = [a.strip(',') for a in apps]
|
|
if apps:
|
|
for app_label in apps:
|
|
app = cache.get_app(app_label)
|
|
for model in [m for m in cache.get_models(app)]:
|
|
print 'Flushing cache for "%s.%s"' % (app_label, model.__name__)
|
|
for obj in model.objects.order_by('-id'):
|
|
for spec_file in get_spec_files(obj):
|
|
if spec_file is not None:
|
|
spec_file._delete()
|
|
if spec_file.field.pre_cache:
|
|
spec_file._create()
|
|
else:
|
|
print 'Please specify on or more app names'
|