Проблема с полем модели django и sorl.thumbnail - PullRequest
0 голосов
/ 06 ноября 2018

Что я хочу: когда пользователь загружает фотографию с панели администратора, я хочу создать предварительный просмотр (миниатюру) и сохранить его в другом поле этой модели, используя 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

Может быть, у кого-то есть рабочий пример этого или где я могу прочитать об этом? Спасибо за ваши ответы!

...