Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2012 11:06:46

Izzet
От:
Зарегистрирован: 2012-02-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Django LFS + sorl-thumbnail

День добрый!
Начал разбираться с django вообще и с django-lfs в частности. Хочу изменить встроенный механизм создания изображений, чтобы при сохранении, в качестве имени файла использовалось его md5 хэш и файлы складывались в соотвествующие подпапки на основании этого хэша (как это принято делать при большом количестве товаров). Тут хотелось бы прикрутить sorl-thumbnail или какое другое приложение.

Как я понял, за механизм создания изображений отвечает файл thumbs.py и в частности класс ImageWithThumbsFieldFile. Т.е. необходимо его переопределить и как-то заставить все приложение использовать модифицированный вариант. Подскажите, как это можно сделать не меняя исходников django-lfs? Или поделитесь плз опытом, как подобный механизм обычно реализуется?



Отредактировано Izzet (Сен. 18, 2012 11:08:01)

Офлайн

#2 Сен. 19, 2012 13:41:36

Izzet
От:
Зарегистрирован: 2012-02-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Django LFS + sorl-thumbnail

Update:
Как оказалось, sorl-thumbnail отлично самостоятельно генерирует иконки изображений и раскладывает все по подпапкам. Осталась одна проблема, как убрать автогенерацию иконок, которую запускает lfs при добавлении картинки к товару.

То есть, из скрипта изображения к товару добавляются примерно так:

from lfs.catalog.models import Image
from django.core.files.uploadedfile import SimpleUploadedFile
from django.contrib.contenttypes.models import ContentType
content_type_product = ContentType.objects.get(app_label='catalog', model='product') 
im = Image(content_type = content_type_product, title = product.name, content = product, position = image_position) 
f = urllib2.urlopen(image_url).read()
img = SimpleUploadedFile(uploaded_image_, f)
im.image.save(settings.MEDIA_ROOT + new_path, img, save=True)
product.images.add(im)
product.save()

При вызове im.image.save как раз и происходит автоматическая генерация иконок. Была идея наследовать и переопределить Image, но похоже в джанге с наследованием моделей туго. Теперь уже думаю плюнуть и просто поменять исходник django-lfs (что не есть хорошо, но работать будет)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version