From d253fe281ad55620e116f2cce9c7262e613de7a7 Mon Sep 17 00:00:00 2001 From: Matthew Tretter Date: Sat, 1 Dec 2012 16:46:10 -0500 Subject: [PATCH] Rename `image_field` argument; closes #158 --- README.rst | 4 ++-- imagekit/models/fields/__init__.py | 7 ++++--- imagekit/models/fields/utils.py | 4 ++-- tests/models.py | 4 ++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.rst b/README.rst index 1eea912..db024c3 100644 --- a/README.rst +++ b/README.rst @@ -121,7 +121,7 @@ of applying a spec to another one of your model's fields: class Photo(models.Model): avatar = models.ImageField(upload_to='avatars') - avatar_thumbnail = ImageSpecField(id='myapp:fancy_thumbnail', image_field='avatar') + avatar_thumbnail = ImageSpecField(id='myapp:fancy_thumbnail', source='avatar') photo = Photo.objects.all()[0] print photo.avatar_thumbnail.url # > /media/CACHE/ik/982d5af84cddddfd0fbf70892b4431e4.jpg @@ -142,7 +142,7 @@ writing a subclass of ``ImageSpec``: avatar_thumbnail = ImageSpecField(processors=[ResizeToFill(100, 50)], format='JPEG', options={'quality': 60}, - image_field='avatar') + source='avatar') photo = Photo.objects.all()[0] print photo.avatar_thumbnail.url # > /media/CACHE/ik/982d5af84cddddfd0fbf70892b4431e4.jpg diff --git a/imagekit/models/fields/__init__.py b/imagekit/models/fields/__init__.py index 153e793..95d5914 100644 --- a/imagekit/models/fields/__init__.py +++ b/imagekit/models/fields/__init__.py @@ -26,7 +26,7 @@ class ImageSpecField(SpecHostField): """ def __init__(self, processors=None, format=None, options=None, - image_field=None, storage=None, autoconvert=None, + source=None, storage=None, autoconvert=None, image_cache_backend=None, image_cache_strategy=None, spec=None, id=None): @@ -36,7 +36,8 @@ class ImageSpecField(SpecHostField): image_cache_strategy=image_cache_strategy, spec=spec, spec_id=id) - self.image_field = image_field + # TODO: Allow callable for source. See https://github.com/jdriscoll/django-imagekit/issues/158#issuecomment-10921664 + self.source = source def contribute_to_class(self, cls, name): setattr(cls, name, ImageSpecFileDescriptor(self, name)) @@ -44,7 +45,7 @@ class ImageSpecField(SpecHostField): # Add the model and field as a source for this spec id specs.registry.add_sources(self.spec_id, - [ImageFieldSourceGroup(cls, self.image_field)]) + [ImageFieldSourceGroup(cls, self.source)]) class ProcessedImageField(models.ImageField, SpecHostField): diff --git a/imagekit/models/fields/utils.py b/imagekit/models/fields/utils.py index 3043016..efba303 100644 --- a/imagekit/models/fields/utils.py +++ b/imagekit/models/fields/utils.py @@ -11,7 +11,7 @@ class ImageSpecFileDescriptor(object): if instance is None: return self.field else: - field_name = getattr(self.field, 'image_field', None) + field_name = getattr(self.field, 'source', None) if field_name: source_file = getattr(instance, field_name) else: @@ -24,7 +24,7 @@ class ImageSpecFileDescriptor(object): (instance.__class__.__name__, self.attname)) elif len(image_fields) > 1: raise Exception('%s defines multiple ImageFields, but you' - ' have not specified an image_field for your %s' + ' have not specified a source for your %s' ' ImageSpecField.' % (instance.__class__.__name__, self.attname)) else: diff --git a/tests/models.py b/tests/models.py index 2c3d8e4..199fdc0 100644 --- a/tests/models.py +++ b/tests/models.py @@ -10,11 +10,11 @@ class Photo(models.Model): original_image = models.ImageField(upload_to='photos') thumbnail = ImageSpecField([Adjust(contrast=1.2, sharpness=1.1), - ResizeToFill(50, 50)], image_field='original_image', format='JPEG', + ResizeToFill(50, 50)], source='original_image', format='JPEG', options={'quality': 90}) smartcropped_thumbnail = ImageSpecField([Adjust(contrast=1.2, - sharpness=1.1), SmartCrop(50, 50)], image_field='original_image', + sharpness=1.1), SmartCrop(50, 50)], source='original_image', format='JPEG', options={'quality': 90})