画像フィールドを持つモデルがあり、ModelForm を使用して画像を変更できるようにしたいと考えています。イメージを変更する場合は、古いイメージを削除して新しいイメージに置き換える必要があります。
次のように、ModelForm の clean メソッドでこれを実行しようとしました。
def clean(self):
cleaned_data = super(ModelForm, self).clean()
old_profile_image = self.instance.image
if old_profile_image:
old_profile_image.delete(save=False)
return cleaned_data
これは、ユーザーが指定したファイルが正しくない場合 (たとえば、画像ではない場合) を除き、正常に機能します。その結果、新しい画像が保存されずに画像が削除されます。古いイメージを削除するのに最適な場所を教えてください。これは、古いイメージを削除する前に、新しいイメージが正しいことをどこで確認できるのでしょうか?
編集:可能であれば、ModelForm クラスでこれを行うことを好みます。