上传以下字段的文件时:
file = FileField(upload_to='/path/')
Django使用InMemoryUploadedFile
或TemporaryUploadedFile
。后者存储在磁盘上,可以使用temporary_file_path
属性访问其文件名。存储选择取决于文件大小。
如何覆盖此行为并始终作为TemporaryUploadedFile
上传此模型字段?
我之所以这样问是因为我需要编写一个使用外部库的验证器,该外部库只能将文件路径作为输入,而不是数据流。
答案 0 :(得分:4)
默认情况下,upload handlers为:
[
'django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]
使用MemoryFileUploadHandler
处理小于2.5MB的文件。
所以只需在你的设置中说:
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler',]