Rename image_field argument; closes #158

This commit is contained in:
Matthew Tretter 2012-12-01 16:46:10 -05:00
parent 54baa44900
commit d253fe281a
4 changed files with 10 additions and 9 deletions

View file

@ -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

View file

@ -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):

View file

@ -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:

View file

@ -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})