django-imagekit/imagekit/options.py

50 lines
1.6 KiB
Python
Raw Normal View History

2009-01-04 18:42:25 +00:00
# Imagekit options
2009-01-08 20:04:20 +00:00
from imagekit import processors
from imagekit.specs import ImageSpec
import os
import os.path
2009-12-19 16:01:54 +00:00
2009-01-04 18:42:25 +00:00
class Options(object):
""" Class handling per-model imagekit options
"""
default_image_field = None
"""The name of the image field property on the model.
Can be overridden on a per-spec basis by setting the image_field property on
the spec. If you don't define default_image_field on your IKOptions class,
it will be automatically populated with the name of the first ImageField the
model defines.
"""
default_storage = None
"""Storage used for specs that don't define their own storage explicitly.
If neither is specified, the image field's storage will be used.
"""
def default_cache_to(self, instance, path, specname, extension):
"""Determines the filename to use for the transformed image. Can be
overridden on a per-spec basis by setting the cache_to property on the
spec, or on a per-model basis by defining default_cache_to on your own
IKOptions class.
"""
filepath, basename = os.path.split(path)
filename = os.path.splitext(basename)[0]
new_name = '{0}_{1}.{2}'.format(filename, specname, extension)
return os.path.join(os.path.join('cache', filepath), new_name)
2009-01-08 18:37:15 +00:00
crop_horz_field = 'crop_horz'
crop_vert_field = 'crop_vert'
2009-01-08 21:11:15 +00:00
preprocessor_spec = None
2009-01-04 18:42:25 +00:00
save_count_as = None
specs = None
2009-12-19 16:01:54 +00:00
def __init__(self, opts):
2009-01-04 18:42:25 +00:00
for key, value in opts.__dict__.iteritems():
setattr(self, key, value)
self.specs = list(self.specs or [])