Как сохранить сгенерированное изображение из Django ImageKit в ImageField? - PullRequest
0 голосов
/ 07 июня 2018

Я генерирую изображение, используя код ниже:

source_file = open('/path/to/myimage.jpg', 'rb')
image_generator = Thumbnail(source=source_file)
result = image_generator.generate()

Каков правильный метод для сохранения сгенерированного «результата» обратно в django ImageField?то есть в модели Сгенерированный результат представляется объектом _io.BytesIO.И, кажется, я не могу напрямую сохранить его в ImageField.

Любая помощь будет оценена

1 Ответ

0 голосов
/ 07 июня 2018

Если у вас есть SampleModel, как показано ниже,

class SampleModel(models.Model):
    image = models.ImageField(null=True)


, тогда ContentFile сотворите магию для вас.Следуйте за фрагментом,

from django.core.files.base import ContentFile

source_file = open('/path/to/myimage.jpg', 'rb')
image_generator = Thumbnail(source=source_file)
result = image_generator.generate()
# additional snippet
django_file = ContentFile(result.getvalue())
sample = SampleModel.objects.create()
sample.image.save('sample_name.jpg', django_file)
sample.save()
...