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

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

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