Как я могу использовать хранилище файлов по умолчанию (S3) для загрузки файлов с помощью мастера форм Django FormTools?

При загрузке файлов django-formtools Form Wizard требуется место для временного хранения, пока пользователь не выполнит все шаги мастера.

Документация FormTools показывает пример того, как загрузить файл в локальную папку на вашем сервере. Параметр file_storage необходим для загрузки файлов.

from django.core.files.storage import FileSystemStorage

class CustomWizardView(WizardView):
    file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'photos'))

Мы используем Heroku и не имеем доступа к локальному хранилищу при загрузке файла. Мы используем django-хранилища и S3 для хранения всех наших файлов. Я хочу использовать django-хранилища для управления процессом загрузки.

Как я могу просто изменить это представление, чтобы мы использовали систему хранения по умолчанию для загрузки этого файла во временную папку на S3?

1 ответ

Решение

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

from django.core.files.storage import DefaultStorage

class CustomWizardView(WizardView):
    ...
    file_storage = DefaultStorage()
Другие вопросы по тегам