FileField: принудительное использование TemporaryUploadedFile
При загрузке файла для поля, такого как это:
file = FileField(upload_to='/path/')
Джанго использует либо InMemoryUploadedFile
или TemporaryUploadedFile
, Последний хранится на диске, и его имя файла можно получить с помощью temporary_file_path
имущество. Выбор хранилища зависит от размера файла.
Как я могу переопределить это поведение и всегда загружать как TemporaryUploadedFile
для этой модели поля?
Я спрашиваю об этом потому, что мне нужно написать валидатор, который использует внешнюю библиотеку, которая может принимать только пути к файлам в качестве входных данных, а не потоки данных.
1 ответ
По умолчанию обработчики загрузки:
[
'django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]
И файлы размером менее 2,5 МБ обрабатываются с MemoryFileUploadHandler
,
Так что просто скажи в настройках:
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler',]