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

Как я понял, за механизм создания изображений отвечает файл thumbs.py и в частности класс ImageWithThumbsFieldFile. Т.е. необходимо его переопределить и как-то заставить все приложение использовать модифицированный вариант. Подскажите, как это можно сделать не меняя исходников django-lfs? Или поделитесь плз опытом, как подобный механизм обычно реализуется?
Izzet
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 (что не есть хорошо, но работать будет)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB