我有一个带有图像字段的模型,我希望能够使用 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 类中执行此操作。