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()))

#305.01.2017, 19:33 article marketing coach пишет:

Fantastic web site. Lots of useful information here. I'm sending it to a few friends ans also sharing in delicious.

And of course, thank you for your effort! http://www.01news.fr/cat%C3%A9gories/...

#405.01.2017, 21:23 rire et chanson live пишет:

Un des animateurs, a complètement lâché prise peu après la sortie du tournant
final. http://www.youtube.com/watch?v=bHw8Di...

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

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

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