Найти - Пользователи
Полная версия: Upload файла и url к нему
Начало » Django » Upload файла и url к нему
1
romankrv
Здравствуйте.

При апплоаде файла если использовать такую схему:

1. Загрузить картинку с ресайзом и сохранить путь в базе для использования его как картинки большого размера.
2. на основе п.1 сделать ресайз для использования как картинки thumbnail.

Вопрос: Как логичнее и практичнее для пункта 2:
2.1) Записать в базу этот путь

2.2) Сохранить на диск этот отресайзенный файл с добавлением префикса в это имя файла , а использовать для создания url – url из п.1 + префикс

Спасибо
st00nsa
у меня подобный код, помоему я его гдето стырил…
class Profile_list(models.Model):
thumbnail = models.ImageField(upload_to='files/avas/thumb/', blank=True, null=True, editable=False)
avatar=models.ImageField(upload_to="files/avas/", verbose_name="Аватар",blank=True)
def save(self, force_insert=False, force_update=False):
#get mtime stats from file

thumb_update = False
if self.thumbnail:
statinfo1 = os.stat(self.avatar.path)
statinfo2 = os.stat(self.thumbnail.path)
if statinfo1 > statinfo2:
thumb_update = True

if self.avatar and not self.thumbnail or thumb_update:
from PIL import Image

THUMB_SIZE = (50, 50)

#self.thumbnail = self.avatar

image = Image.open(self.avatar.path)

if image.mode not in ('L', 'RGB'):
image = image.convert('RGB')

image.thumbnail(THUMB_SIZE, Image.ANTIALIAS)
(head, tail) = os.path.split(self.avatar.path)
(a, b) = os.path.split(self.avatar.name)

if not os.path.isdir(head + '/thumbs'):
os.mkdir(head + '/thumbs')

image.save(head + '\\thumbs\\' + tail)

self.thumbnail = a + '/thumbs/' + b
super(Profile_list, self).save()
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