allowing any fields on the object to be specified for use in naming of generated images; default to allowing pk

This commit is contained in:
Josh Ourisman 2011-06-28 14:27:47 -04:00
parent 9845befd96
commit 5976a512e6
2 changed files with 11 additions and 4 deletions

View file

@ -13,6 +13,7 @@ class Options(object):
preprocessor_spec = None
cache_dir = 'cache'
save_count_as = None
cache_filename_fields = ['pk', ]
cache_filename_format = "%(filename)s_%(specname)s.%(extension)s"
admin_thumbnail_spec = 'admin_thumbnail'
spec_module = 'imagekit.defaults'

View file

@ -82,11 +82,17 @@ class Accessor(object):
for processor in self.spec.processors:
if issubclass(processor, processors.Format):
extension = processor.extension
filename_format_dict = {'filename': filename,
'specname': self.spec.name(),
'extension': extension.lstrip('.')}
cache_filename_fields = self._obj._ik.cache_filename_fields
filename_format_dict.update(dict(zip(
cache_filename_fields,
[getattr(self._obj, field) for
field in cache_filename_fields])))
cache_filename = self._obj._ik.cache_filename_format % \
{'pk': self._obj.pk,
'filename': filename,
'specname': self.spec.name(),
'extension': extension.lstrip('.')}
filename_format_dict
if callable(self._obj._ik.cache_dir):
return self._obj._ik.cache_dir(self._obj, filepath,
cache_filename)