1234567891011121314151617181920212223242526272829303132333435 |
- from django.core.management.base import BaseCommand, CommandError
- from optparse import make_option
- from photologue.models import PhotoSize, ImageModel
- class Command(BaseCommand):
- help = ('Clears the Photologue cache for the given sizes.')
- args = '[sizes]'
- requires_model_validation = True
- can_import_settings = True
- def handle(self, *args, **options):
- return create_cache(args, options)
- def create_cache(sizes, options):
- """
- Clears the cache for the given files
- """
- size_list = [size.strip(' ,') for size in sizes]
- if len(size_list) < 1:
- sizes = PhotoSize.objects.all()
- else:
- sizes = PhotoSize.objects.filter(name__in=size_list)
- if not len(sizes):
- raise CommandError('No photo sizes were found.')
- print 'Flushing cache...'
- for cls in ImageModel.__subclasses__():
- for photosize in sizes:
- print 'Flushing %s size images' % photosize.name
- for obj in cls.objects.all():
- obj.remove_size(photosize)
|