我有用户附加文件的django表单,但是我从文件本身中提取pdf表单数据,所以我不想保存文件。
但是当我保存表单时,文件会自动保存。有没有办法阻止文件被保存?
感谢
答案 0 :(得分:3)
当文件上传到您的服务器时,django会根据您指定的FILE_UPLOAD_HANDLER
处理上传的文件。默认情况下,它们是: -
("django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",)
这意味着文件对象位于服务器的内存中,直到form.save()
(form
对象包含您上传的文件)被调用。调用后,文件对象将根据您在该文件字段的upload_to
属性中指定的内容写入文件系统。
我要做的是阻止将上传的文件写入您的文件系统,将此文件对象分配给变量而不调用form.save()
。像这样: -
uploaded_file = request.FILES['file']
我们可以故意不指定request.FILES
,如下所示: -
form = MyModelFormWithFileField(request.POST, None)
由于您已分配uploaded_file
变量,因此您现在可以执行任何操作,而无需将其写入文件系统。
由于您的form
实例未分配request.FILES
,因此form.save()
不会将您的表单数据写入文件系统。