32 lines
1 KiB
Python
32 lines
1 KiB
Python
from django.core.management.base import BaseCommand, CommandError
|
|
|
|
from photologue.models import ImageModel, PhotoSize
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Clears the Photologue cache for the given sizes.'
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument('sizes',
|
|
nargs='*',
|
|
type=str,
|
|
help='Name of the photosize.')
|
|
|
|
def handle(self, *args, **options):
|
|
sizes = options['sizes']
|
|
|
|
if not sizes:
|
|
photosizes = PhotoSize.objects.all()
|
|
else:
|
|
photosizes = PhotoSize.objects.filter(name__in=sizes)
|
|
|
|
if not len(photosizes):
|
|
raise CommandError('No photo sizes were found.')
|
|
|
|
print('Flushing cache...')
|
|
|
|
for cls in ImageModel.__subclasses__():
|
|
for photosize in photosizes:
|
|
print('Flushing %s size images' % photosize.name)
|
|
for obj in cls.objects.all():
|
|
obj.remove_size(photosize)
|