13.03

Как присвоить к файловому полю Django модели существующий файл

Ниже предствлено решение как файловому полю модели присвоить уже существующий файл:

try:
    file = request.FILES['avatar']
    fileName = request.FILES['avatar'].name
except:
    user.avatar = 'avatars/default.gif'
    flag = False
if flag:
    user.avatar.save(fileName, file)
user.save()

Из официальной документации это не очевидно. Описанный там пример производит запись файла на диск, а так как файл с таким именем уже есть, то файла сохраняется с другим именем. В результате получаем 2 файла, причем первый может быть не связан ни с одним экземпляром модели.

Подробней тема на stackoverflow

Раздел: Django

Коментарии

#121.03.2013, 00:43 Хороший человек пишет:

avatar = models.ImageField(default='path/to/default/image.png')

Оставлю тут, на всякий случай.

#210.10.2013, 14:25 madjardi пишет:

приходилось сохранять картинку в сыром виде(16-ричный вид)
image=ProductImage()
image.image.save('имя картинки', ContentFile(сырая картинка.read()))

Оставьте комментарий

© 2010 Алексей Камедов

При копировании материалов блога ссылка на источник обязательна.