Если вы хотите использовать класс в других проектах то первое, это не надо жестко кодировать max_width и max_height
def save(self, name, content, save=True, max_width=200, max_height=200)
Передайте через поле модели и сохраните.
class WEBPThumbnail(models.ImageField):
def __init__(self, *args, **kwargs):
self.max_width = kwargs.pop('max_width', 200)
self.max_height = kwargs.pop('max_height', 200)
super().__init__(*args, **kwargs)
def attr_class(self):
return WEBPThumbnailImg
def pre_save(self, model_instance, add):
file = super().pre_save(model_instance, add)
if file and not file._committed:
file.max_width = self.max_width
file.max_height = self.max_height
return file
Теперь вы можете использовать эти параметры в class
WEBPThumbnailImg(ImageFieldFile)
если ваши условия
True
то сохраняете изображения с новыми парметрами.
Используйте в вашей модели.
class Category(models.Model)