如何将生成的图像从Django ImageKit保存到ImageField?

时间:2018-06-07 05:37:22

标签: django image django-models imagefield django-imagekit

我使用以下代码生成图像:

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 :(得分:1)

假设您有以下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()