Мой код:
class ...(models.Model):
...
def save(self, *args, **kwargs):
super(Photo, self).save(*args, **kwargs)
filepath = self.image.path
width = self.image.width
height = self.image.height
if height < width:
new_width = int(round(297*90/25))
new_height = int(round(210*90/25))
else:
new_height = int(round(297*90/25))
new_width = int(round(210*90/25))
image = Image.open(filepath)
image = image.resize((new_width,new_height), Image.ANTIALIAS)
image.save(filepath, format='JPEG', quality=90)
В целом работает, но хотелось бы изменять размер и формат перед сохранением, а не после.
Пробовал переопределить метод save_model в админке. Там файл имеет тип TemporaryUploadFile, как изменить его размер и тип нагуглить не получилось.