Как получить файлы, загруженные в InMemoryUploadedFile django - PullRequest
2 голосов
/ 16 марта 2019

Я разрабатываю приложение в django 2.1, в котором я должен загрузить неопределенное количество аудио через модальное устройство, а затем передать информацию представлению, из которого запускается модальное устройство. Однако эти аудиозаписи не должны храниться в базе данных до тех пор, пока форма основного представления не будет заполнена. Тогда я подумал об этих решениях:

Сначала я подумал о том, чтобы сохранить его как атрибут сеанса, но содержимое FileField не поддерживает сериализацию в формате JSON, что не сработало.

Во-вторых, я подумал о свойстве LocalStorage, но если файлы превысят размер, у меня будут проблемы.

В-третьих, я подумал о том, чтобы получить путь к файлу, а затем создать аудио, но поскольку я читал, это плохая практика, и его можно получить, только если файл создан на диске, то есть, если он находится в TemporaryUploadedFile, но мои файлы должен весить менее 1 МБ

Для этого у меня есть опция, что все файлы, которые загружаются с размером менее 2,5 МБ, хранятся в InMemoryUploadedFile, но я не знаю, как их получить. Кто-нибудь знает, как это делается? или как еще можно сохранить список временных аудиозаписей?

1 Ответ

0 голосов
/ 20 марта 2019

InMemoryUploadedFile - это оболочка вокруг файлового объекта. Вы можете получить доступ к объекту файла, используя атрибут file .

file_in_memory # <InMemoryUploadedFile: xxx (xxx/xxx)>
file_object = file_in_memory.file
...