我有用户附加文件的 django 表单,但我正在从文件本身中提取 pdf 表单数据,所以我不想保存文件。
但是当我保存表单时,文件会自动保存。有什么办法可以防止文件被保存?
谢谢
当一个文件被上传到你的服务器时,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()
因此不会将您的表单数据写入文件系统。