In my `models.py`, I override `save()` to manipulate the ImageField before saving it.

```
class Image(models.Model):
    caption = models.Charfield(max_length=254)
    image = models.ImageField(upload_to='')

    def save(self, *args, **kwargs):
        if self.image:
            # image manipulations
            super(Image, self).save(*args, **kwargs)

```

The manipulation should not run on the image if the object is saved without changing the ImageField, i.e. the user changes some other field like a CharField and updates the object. I didn't test this, but I presume that in the above code, self.image will always be True even if the user saves without uploading a new image to replace the old one.

So, I plan to check this based on whether or not an image file was uploaded by the user to begin with:

```
if form.is_valid():
    instance = form.save(commit=False)
    if form.cleaned_data.get('image'):
        image_was_uploaded = True
    instance.save(image_was_uploaded=image_was_uploaded)

```

Is this a valid method to accomplish this, or is there a better/more Pythonic approach (that hopefully works within `models.py` so Admin and DRF benefit from the same functionality)?