From 56f8d1b8bcdc8f2fb837167a7b26ea816ddf95db Mon Sep 17 00:00:00 2001 From: Matthew Tretter Date: Thu, 25 Oct 2012 22:46:28 -0400 Subject: [PATCH] Create form field class; re: #163 --- imagekit/forms/__init__.py | 1 + imagekit/forms/fields.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 imagekit/forms/__init__.py create mode 100644 imagekit/forms/fields.py diff --git a/imagekit/forms/__init__.py b/imagekit/forms/__init__.py new file mode 100644 index 0000000..8086e94 --- /dev/null +++ b/imagekit/forms/__init__.py @@ -0,0 +1 @@ +from .fields import ProcessedImageField diff --git a/imagekit/forms/fields.py b/imagekit/forms/fields.py new file mode 100644 index 0000000..19a4387 --- /dev/null +++ b/imagekit/forms/fields.py @@ -0,0 +1,25 @@ +from django.forms import ImageField +from ..specs import SpecHost + + +class ProcessedImageField(ImageField, SpecHost): + + def __init__(self, processors=None, format=None, options=None, + autoconvert=True, spec=None, spec_id=None, *args, **kwargs): + + if spec_id is None: + spec_id = '??????' # FIXME: Wher should we get this? + + SpecHost.__init__(self, processors=processors, format=format, + options=options, autoconvert=autoconvert, spec=spec, + spec_id=spec_id) + super(ProcessedImageField, self).__init__(*args, **kwargs) + + def clean(self, data, initial=None): + data = super(ProcessedImageField, self).clean(data, initial) + + if data: + spec = self.get_spec() # HINTS?!?!?!?!?! + data = spec.apply(data, data.name) + + return data