Найти - Пользователи
Полная версия: ajax-upload через темповые файлы
Начало » Django » ajax-upload через темповые файлы
1
Mutagena
Привет.
Необходимо реализовать мульти-загрузку файлов.
Решил использовать valums / file-uploader. https://github.com/valums/file-uploader
Необходимо реализовать два бекенда. Для браузеров, поддерживающих мульти-загрузку и для остальных.

Если request.raw_post_data записать в темповый файл таким образом:
from django.core.files.temp import NamedTemporaryFile
with NamedTemporaryFile(suffix='.upload', dir=settings.FILE_UPLOAD_TEMP_DIR) as f:
f.write(request.raw_post_data)
Каким образом теперь темповый файл обернуть в django.core.files.base.File, чтобы можно было инстанцировать и сохранить модель? Дело в том, что в поле модели указан storage, который должен правильно сохранить файл.

Может быть кто-нибудь уже решал подобную задачу?
ziro
Попробуйте метод save для поля модели типа FileField. Что то похожее есть в документации - https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.FieldFile.save
типа такого:

from django.core.files.base import ContentFile

def save_view(request, ...):
my_model.my_file_field.save('my-file-name.ext', ContentFile(request.raw_post_data))
То есть возможно Вам NamedTemporaryFile не понадобится. Ну или можете потом считать содержимое полученного NamedTemporaryFile в ContentFile.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB