mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-03-16 21:30:23 +00:00
Pull field utilities out into their own module
This commit is contained in:
parent
8cdbd96a1f
commit
3a3f941e2c
2 changed files with 41 additions and 39 deletions
|
|
@ -4,29 +4,7 @@ from django.db.models.signals import post_init, post_save, post_delete
|
|||
from ...imagecache import get_default_image_cache_backend
|
||||
from ...generators import SpecFileGenerator
|
||||
from .files import ImageSpecFieldFile, ProcessedImageFieldFile
|
||||
|
||||
|
||||
class BoundImageKitMeta(object):
|
||||
def __init__(self, instance, spec_fields):
|
||||
self.instance = instance
|
||||
self.spec_fields = spec_fields
|
||||
|
||||
@property
|
||||
def spec_files(self):
|
||||
return [getattr(self.instance, n) for n in self.spec_fields]
|
||||
|
||||
|
||||
class ImageKitMeta(object):
|
||||
def __init__(self, spec_fields=None):
|
||||
self.spec_fields = spec_fields or []
|
||||
|
||||
def __get__(self, instance, owner):
|
||||
if instance is None:
|
||||
return self
|
||||
else:
|
||||
ik = BoundImageKitMeta(instance, self.spec_fields)
|
||||
setattr(instance, '_ik', ik)
|
||||
return ik
|
||||
from .utils import ImageSpecFieldDescriptor, ImageKitMeta, BoundImageKitMeta
|
||||
|
||||
|
||||
class ImageSpecField(object):
|
||||
|
|
@ -95,7 +73,7 @@ class ImageSpecField(object):
|
|||
get_default_image_cache_backend()
|
||||
|
||||
def contribute_to_class(self, cls, name):
|
||||
setattr(cls, name, _ImageSpecFieldDescriptor(self, name))
|
||||
setattr(cls, name, ImageSpecFieldDescriptor(self, name))
|
||||
try:
|
||||
ik = getattr(cls, '_ik')
|
||||
except AttributeError:
|
||||
|
|
@ -149,21 +127,6 @@ class ImageSpecField(object):
|
|||
ImageSpecField._update_source_hashes(instance)
|
||||
|
||||
|
||||
class _ImageSpecFieldDescriptor(object):
|
||||
def __init__(self, field, attname):
|
||||
self.attname = attname
|
||||
self.field = field
|
||||
|
||||
def __get__(self, instance, owner):
|
||||
if instance is None:
|
||||
return self.field
|
||||
else:
|
||||
img_spec_file = ImageSpecFieldFile(instance, self.field,
|
||||
self.attname)
|
||||
setattr(instance, self.attname, img_spec_file)
|
||||
return img_spec_file
|
||||
|
||||
|
||||
class ProcessedImageField(models.ImageField):
|
||||
"""
|
||||
ProcessedImageField is an ImageField that runs processors on the uploaded
|
||||
|
|
|
|||
39
imagekit/models/fields/utils.py
Normal file
39
imagekit/models/fields/utils.py
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
from .files import ImageSpecFieldFile
|
||||
|
||||
|
||||
class BoundImageKitMeta(object):
|
||||
def __init__(self, instance, spec_fields):
|
||||
self.instance = instance
|
||||
self.spec_fields = spec_fields
|
||||
|
||||
@property
|
||||
def spec_files(self):
|
||||
return [getattr(self.instance, n) for n in self.spec_fields]
|
||||
|
||||
|
||||
class ImageKitMeta(object):
|
||||
def __init__(self, spec_fields=None):
|
||||
self.spec_fields = spec_fields or []
|
||||
|
||||
def __get__(self, instance, owner):
|
||||
if instance is None:
|
||||
return self
|
||||
else:
|
||||
ik = BoundImageKitMeta(instance, self.spec_fields)
|
||||
setattr(instance, '_ik', ik)
|
||||
return ik
|
||||
|
||||
|
||||
class ImageSpecFieldDescriptor(object):
|
||||
def __init__(self, field, attname):
|
||||
self.attname = attname
|
||||
self.field = field
|
||||
|
||||
def __get__(self, instance, owner):
|
||||
if instance is None:
|
||||
return self.field
|
||||
else:
|
||||
img_spec_file = ImageSpecFieldFile(instance, self.field,
|
||||
self.attname)
|
||||
setattr(instance, self.attname, img_spec_file)
|
||||
return img_spec_file
|
||||
Loading…
Reference in a new issue