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',]
Другие вопросы по тегам