在pre_save信号中使用PIL调整图像大小

时间:2014-04-10 04:57:00

标签: python django

这是我的代码:

from PIL import Image
from pilkit.processors import ResizeToFit

def before_saving_shop(sender, instance, **kwargs):
    img = Image.open(instance.logo)
    processor = ResizeToFit(100, 100)
    instance.logo = processor.process(img)

pre_save.connect(before_saving_shop, sender=Shop)

我得到了这个例外:

Exception Value: _committed

请帮忙。

1 个答案:

答案 0 :(得分:0)

您无需为此目的使用信号。只需重新定义Shop模型的保存方法,如下所示:

class Shop(models.Model):
    ....

    def save(self):
        img = Image.open(self.logo)
        processor = ResizeToFit(100, 100)
        self.logo = processor.process(img)
        super(Shop, self).save()