mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-03-18 14:20:24 +00:00
You're no longer restricted to just one, special-case admin thumbnail. Make as many as you want by adding AdminThumbnailView properties to your model and including them in your admin class's `list_display` tuple. You can also provide a custom template. Note that (because this change introduces templates to imagekit), imagekit is now required in INSTALLED_APPS. Ideally we could get this stuff out of the model, but we'll have to look into whether that's possible without making things really complicated.
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
# Imagekit options
|
|
from imagekit import processors
|
|
from imagekit.specs import ImageSpec
|
|
import os
|
|
import os.path
|
|
|
|
|
|
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)
|
|
|
|
crop_horz_field = 'crop_horz'
|
|
crop_vert_field = 'crop_vert'
|
|
preprocessor_spec = None
|
|
save_count_as = None
|
|
specs = None
|
|
|
|
def __init__(self, opts):
|
|
for key, value in opts.__dict__.iteritems():
|
|
setattr(self, key, value)
|
|
self.specs = list(self.specs or [])
|