作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 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()
不会将您的表单数据写入文件系统。
关于python - 有什么办法django不保存用表单上传的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13617833/
我是一名优秀的程序员,十分优秀!