在Django模型中从单个ImageField保存具有不同尺寸的多个图像

时间:2018-12-28 08:20:19

标签: django django-models python-imaging-library

如何使用单个模型在Django模型中将多个尺寸(例如10x10、20x20、30x30)的图像保存到“ / media /”文件夹中?

谢谢, 尼特什

1 个答案:

答案 0 :(得分:1)

嗯,最后在保存模型实例时使用了Pillow库(pip install Pillow)。您可以像这样覆盖def save():

from PIL import Image
import os
def save(self):
    super().save(*args, **kwargs)
    img = Image.open(self.image.path)
    output_size = (300, 300)
    img.thumbnail(output_size)
    image_name, image_ext = os.path.splitext(self.image.path)
    custom_path = '{}_300{}'.format(image_name, image_ext)
    img.save(custom_path)