diff --git a/imagekit/models.py b/imagekit/models.py index f5df0d9..e26086d 100644 --- a/imagekit/models.py +++ b/imagekit/models.py @@ -93,6 +93,10 @@ class ImageModel(models.Model): @property def _imgfield(self): return getattr(self, self._ik.image_field) + + @property + def _storage(self): + return getattr(self._ik, 'storage', self._imgfield.storage) def _clear_cache(self): for spec in self._ik.specs: diff --git a/imagekit/options.py b/imagekit/options.py index 022cc9e..8b8e998 100644 --- a/imagekit/options.py +++ b/imagekit/options.py @@ -16,8 +16,9 @@ class Options(object): cache_filename_format = "%(filename)s_%(specname)s.%(extension)s" admin_thumbnail_spec = 'admin_thumbnail' spec_module = 'imagekit.defaults' + #storage = defaults to image_field.storage def __init__(self, opts): for key, value in opts.__dict__.iteritems(): setattr(self, key, value) - self.specs = [] \ No newline at end of file + self.specs = [] diff --git a/imagekit/specs.py b/imagekit/specs.py index 317655f..bc26ec2 100644 --- a/imagekit/specs.py +++ b/imagekit/specs.py @@ -63,13 +63,13 @@ class Accessor(object): self._img, self._fmt = self.spec.process(Image.open(fp), self._obj) # save the new image to the cache content = ContentFile(self._get_imgfile().read()) - self._obj._imgfield.storage.save(self.name, content) + self._obj._storage.save(self.name, content) def _delete(self): - self._obj._imgfield.storage.delete(self.name) + self._obj._storage.delete(self.name) def _exists(self): - return self._obj._imgfield.storage.exists(self.name) + return self._obj._storage.exists(self.name) @property def name(self): @@ -98,12 +98,12 @@ class Accessor(object): current_count = getattr(self._obj, fieldname) setattr(self._obj, fieldname, current_count + 1) self._obj.save(clear_cache=False) - return self._obj._imgfield.storage.url(self.name) + return self._obj._storage.url(self.name) @property def file(self): self._create() - return self._obj._imgfield.storage.open(self.name) + return self._obj._storage.open(self.name) @property def image(self):