From 501d3c7ad3cf7f9ef1d7140bd41c733569e2d6bb Mon Sep 17 00:00:00 2001 From: Matthew Tretter Date: Tue, 20 Sep 2011 15:42:28 -0400 Subject: [PATCH] Now using contribute_to_class. By creating the Descriptor using contribute_to_class (instead of in ImageModelBase's __init__), we take the first step towards eliminating the need to extend ImageModel at all. --- imagekit/models.py | 3 +-- imagekit/specs.py | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/imagekit/models.py b/imagekit/models.py index defaafb..76145c1 100644 --- a/imagekit/models.py +++ b/imagekit/models.py @@ -8,7 +8,7 @@ from django.db.models.signals import post_delete from django.utils.html import conditional_escape as escape from django.utils.translation import ugettext_lazy as _ -from imagekit.specs import ImageSpec, Descriptor +from imagekit.specs import ImageSpec from imagekit.lib import * from imagekit.options import Options from imagekit.utils import img_to_fobj @@ -46,7 +46,6 @@ class ImageModelBase(ModelBase): for k, v in attrs.items(): if isinstance(v, ImageSpec): - setattr(self, k, Descriptor(v, k)) specs.append(v) elif not default_image_field and isinstance(v, models.ImageField): default_image_field = k diff --git a/imagekit/specs.py b/imagekit/specs.py index 7a15846..769c23c 100644 --- a/imagekit/specs.py +++ b/imagekit/specs.py @@ -41,6 +41,9 @@ class ImageSpec(object): img.format = fmt return img, fmt + def contribute_to_class(self, cls, name): + setattr(cls, name, Descriptor(self, name)) + class Accessor(object): def __init__(self, obj, spec, property_name):