FileField:使用TemporaryUploadedFile强制

时间:2016-07-13 08:07:56

标签: django django-file-upload

上传以下字段的文件时:

file = FileField(upload_to='/path/')

Django使用InMemoryUploadedFileTemporaryUploadedFile。后者存储在磁盘上,可以使用temporary_file_path属性访问其文件名。存储选择取决于文件大小。

如何覆盖此行为并始终作为TemporaryUploadedFile上传此模型字段?

我之所以这样问是因为我需要编写一个使用外部库的验证器,该外部库只能将文件路径作为输入,而不是数据流。

1 个答案:

答案 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',]