django обрабатывает загрузку файлов - цель отличается от медиа-папки - PullRequest
1 голос
/ 29 марта 2010

Я хочу разрешить пользователю загружать мультимедиа, которое не будет сохранено в папке мультимедиа. Когда я использую следующую строку кода, данные будут загружены в media / upload / logo.

logo_img = models.FileField(upload_to='upload/logo', blank=True)

Мне интересно, как я могу изменить это поведение.

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

Правильный ли этот подход? Существуют ли решения, которые делают именно то, что я хочу, и я бы заново изобрел колесо, реализовав это самостоятельно?

Буду признателен за любую помощь!

1 Ответ

3 голосов
/ 29 марта 2010

Согласно документации django, поведение по умолчанию для FileField - загрузка файлов в MEDIA_ROOT. Если вы просто хотите сохранить загруженные файлы в секрете, вы можете отделить каталог MEDIA_ROOT, и каталог содержит медиа-файлы вашего сайта. И написать собственный вид для обслуживания файлов из MEDIA_ROOT.

Если у вас есть более сложные потребности, вы можете реализовать свое собственное хранилище файлов. Проверьте http://docs.djangoproject.com/en/dev/howto/custom-file-storage/ для получения дополнительной информации. Благодаря пользовательскому хранилищу файлов вы можете полностью контролировать, как хранится файл и как он подается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...