Подтвердить что ты не робот

Сохранить изображение, созданное с помощью PIL, до модели django

Я успешно создал и повернул изображение, которое было загружено по электронной почте в каталог на моем сервере, используя следующий код:

      image = ContentFile(b64decode(part.get_payload()))
      im = Image.open(image)
      tempfile = im.rotate(90)
      tempfile.save("/srv/www/mysite.com/public_html/media/images/rotate.jpg", "JPEG")
      img = Photo(user=user)
      img.img.save('rotate.jpg', tempfile)
      img.save()

Повернутое изображение существует в каталоге, однако, когда я пытаюсь добавить это изображение в свою модель, оно не сохраняется. Что мне не хватает? Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

Я решил проблему со следующим кодом:

       image = ContentFile(b64decode(part.get_payload()))
       im = Image.open(image)
       tempfile = im.rotate(270)
       tempfile_io =StringIO.StringIO()
       tempfile.save(tempfile_io, format='JPEG')
       image_file = InMemoryUploadedFile(tempfile_io, None, 'rotate.jpg','image/jpeg',tempfile_io.len, None)
       img = Photo(user=user)
       img.img.save('rotate.jpg', image_file)
       img.save()

Я нашел ответ здесь Как вы конвертируете PIL` Image` в Django `File`?. Работает безупречно!!!