Что я хочу: когда пользователь загружает фотографию с панели администратора, я хочу создать предварительный просмотр (миниатюру) и сохранить его в другом поле этой модели, используя sorl.thumbnail.
Что я делаю:
from sorl.thumbnail import ImageField, get_thumbnail
class sitePhotos(models.Model):
photo = ImageField(verbose_name=u'Фотография для галереи',
upload_to=upload_galery_photos, null=True)
preview = ImageField(upload_to=upload_galery_previews, editable=False, null=True)
Миграции делают.
Я пытался перезаписать метод сохранения с сайта класса. Фото:
def save(self, *args, **kwargs):
self.preview = get_thumbnail(self.photo, '250x250', crop='center', quality=99)
super(sitePhotos, self).save(*args, **kwargs)
Проблемы: документирование
im = get_thumbnail(my_file, '100x100', crop='center', quality=99)
Какой тип my_file? Это URL, ImageField или что? Если при запуске произошла ошибка, объект 'ImageField' не имеет атрибута '_committed'
Google: переопределить метод сохранения - у объекта 'ImageFile' нет атрибута '_committed'
После этого у меня есть магия с URL и прочее. Моя финишная функция:
self.preview = get_thumbnail('../'+self.photo.url, '250x250',
crop='center', quality=99).url
Может быть, у кого-то есть рабочий пример этого или где я могу прочитать об этом? Спасибо за ваши ответы!