Хорошо, я пробовал почти все, и я не могу заставить это работать.Программно сохраняя изображение на Django ImageField
- У меня есть модель Django с ImageField на нем
- У меня есть код, который загружает изображение через HTTP (протестировано и работает)
- Изображение сохраняется непосредственно в папку «upload_to» (The upload_to будучи один, который устанавливается на ImageField)
- Все, что мне нужно сделать, это связать уже существующий путь к файлу изображения с ImageField
Я написал этот код около 6 различных способов.
Проблема, с которой я столкнулся, - это весь код, который я пишу, приводит к следующему поведению: (1) Django сделает второй файл, (2) переименует новый файл, добавив _ конец имени файла, затем (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
... но, конечно, это не сработает.
И да я прошел через другие вопросы здесь, как this one, а также Джанго документ на File
UPDATE После дальнейшего тестирования, он только делает это поведение при запуске под Apache на Windows Server. При работе под «сервером» на XP он не выполняет это поведение.
Я в тупик.
Вот код, который успешно работает на XP ...
f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()
Еще один большой вопрос Django. Я сделал несколько попыток решить эту проблему без везения. Файлы, созданные в каталоге загрузки, разбиты и имеют только небольшую часть по сравнению с оригиналами (хранятся в другом месте). – westmark
ваш UPDATE не работает – AmiNadimi