You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
1.0 KiB

from __future__ import print_function
from django.core.management.base import BaseCommand, CommandError
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)