我有一个Django
模型,具有自定义的清理功能,如下所示:
class License(models.Model):
# fields of the model
def clean(self):
if condition1:
raise ValidationError('Please correct the error!')
问题是,我的管理员用户上传一些文件所需的FileField
的License Model
,但当我提出的ValidationError
文件字段被清空,用户被迫再次上传文件。是否可以提出错误,但保留文件?
对于其他字段(如CharField
),则不会发生这种情况。
1条答案
按热度按时间vjrehmav1#
您不能在表单(
<input type="file">
)中预先填充FileField,因为这是一个巨大的安全风险,并且会被浏览器自动阻止。或者,您可以在验证表单并引发其他字段的ValidationErrors之前保存 * 每个 * 上传的文件 *。当重新呈现带有错误的表单时,让用户知道您已经收到了该文件,例如在表单字段add_error(https://docs.djangoproject.com/en/4.2/ref/forms/validation/)中
例如:
另见:https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#admin-custom-validation