Программное сохранение изображения в Django ImageField
Хорошо, я попробовал почти все, и я не могу заставить это работать.
У меня есть модель Django с ImageField на немУ меня есть код, который загружает изображение через HTTP (проверено и работает)Изображение сохраняется непосредственно в папке upload_to (то, что загружено в папку ImageField)Все, что мне нужно сделать, это связать уже существующий путь к файлу изображения с ImageFieldЯ написал этот код около 6 разных способов.
Проблема, с которой я сталкиваюсь, состоит в том, что весь код, который я пишу, приводит к следующему поведению: (1) Django создаст второй файл, (2) переименует новый файл, добавив _ в конец файла name, то (3) не передавать какие-либо данные, оставляя их в основном пустым переименованным файлом В пути «upload_to» осталось 2 файла, один из которых является фактическим изображением, а другой - именем изображения, но пустым, и, конечно, путь ImageField установлен на пустой файл, который пытается создать Django. ,
Если это неясно, я попытаюсь проиллюстрировать:
## Image generation code runs....
/Upload
generated_image.jpg 4kb
## Attempt to set the ImageField path...
/Upload
generated_image.jpg 4kb
generated_image_.jpg 0kb
ImageField.Path = /Upload/generated_image_.jpg
Как я могу сделать это без попытки Django повторно сохранить файл? Что мне действительно нравится, так это что-то в этом роде ...
model.ImageField.path = generated_image_path
... но, конечно, это не работает.
И да, я прошел через другие вопросы здесь, какэтот а также Django док нафайл
ОБНОВИТЬ После дальнейшего тестирования, это происходит только при работе под Apache на Windows Server. Во время работы под «runserver» на XP он не выполняет это поведение.
Я в тупике.
Вот код, который успешно работает на XP ...
f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()