Python Django保存方法与图像处理

Python Django保存方法与图像处理,python,django,Python,Django,在模型中重写save方法时,我无法以正确的格式保存图像 我的代码: class Whatever(models.Model): image = models.ImageField(upload_to="whatever") def save(self, *args, *kwargs): # Here I save file to the disk super(Whatever, self).save(*args, **kwargs)

在模型中重写save方法时,我无法以正确的格式保存图像

我的代码:

class Whatever(models.Model):
    image = models.ImageField(upload_to="whatever")

    def save(self, *args, *kwargs):
        # Here I save file to the disk
        super(Whatever, self).save(*args, **kwargs)
        # Then i get this file
        filename = MEDIA_ROOT + '/' + self.image.name
        # And do something with it
        img = cut_circle(filename, (42, 42), 42)
        # Now save it
        img.save(filename+)
这里的问题是,我需要结果图像的透明度,但用户可以上传到服务器坏格式,例如jpeg


那么,如何在base中更改文件格式?我尝试了self.image.save,但我认为这种方法很复杂。

我不知道您使用什么库来
剪切圆
,但是如果它是
PIL
,它可以通过将其作为格式关键字参数传递来将图像保存在PNG中;所以你可以做:

img.save(filename,format='png')

这对JPG来说似乎不错;但是,如果你想保持gif等格式的透明度,你需要明确地注意这一点。

我相信在你的重载保存功能中,它应该是
**kwargs
而不是
*kwargs
。哦,只是打印错误,但谢谢。另外,
filename
而不是
filename+