处理表单中显示的django ImageField当前值

问题描述

我正在尝试删除Django ImageField中的clear复选框,并删除文件显示的当前值。我尝试的方法是按照此处How to not render django image field currently and clear stuff?的建议替换小部件,但结果是我收到ValidationError: "Upload a valid image. The file you uploaded was either not an image or a corrupted image."。虽然验证错误图片上传,但我没有重定向到成功页面,并且正在表单中呈现错误。 建议删除ImageField中当前值的方法是什么?

解决方法

一种适用于我的解决方案,尽管我不确定它有多好。

profile_picture = forms.FileField(label='Upload profile picture',widget=forms.FileInput,validators=[validators.validate_image_file_extension],required=False)

我用ImageField替换了FileField,然后用ImageField小部件添加了FileInput默认验证器,然后向该小部件添加了'accept': 'image/*',所以选择显示仅图像。这样,我模仿了ImageField,但是没有错误发生。