Вы можете указать дополнительный аргумент для подтверждения публикации нового изображения.
Что-то вроде:
def save(self, new_image=False, *args, **kwargs):
if new_image:
small=rescale_image(self.image,width=100,height=100)
self.image_small=SimpleUploadedFile(name,small_pic)
super(Model, self).save(*args, **kwargs)
или передать переменную запроса
def save(self, request=False, *args, **kwargs):
if request and request.FILES.get('image',False):
small=rescale_image(self.image,width=100,height=100)
self.image_small=SimpleUploadedFile(name,small_pic)
super(Model, self).save(*args, **kwargs)
Я думаю, что они не сломают ваш спасбросок при простом вызове.
Вы можете поместить это в свой admin.py, чтобы эта работа также работала с сайтом администратора (для второго из приведенных выше решений):
class ModelAdmin(admin.ModelAdmin):
....
def save_model(self, request, obj, form, change):
instance = form.save(commit=False)
instance.save(request=request)
return instance