Загрузка файла Django не в пути MEDIA_ROOT дает мне ошибку SuspiciousOperation

Я хочу загрузить файлы в путь, который все еще находится в моем проекте django, но в моем пути MEDIA_ROOT.

Когда я пытаюсь это сделать, я получаю ошибку SuspiciousOperation.

Ниже приведены пути, определенные в файле настроек:

MEDIA_ROOT = os.path.join(os.path.dirname( __file__ ), 'static_serve')
UPLOAD_DIR = os.path.join(os.path.dirname( __file__ ), 'uploads')

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

Кто-нибудь знает, как мне обойти (исправить) эту ошибку.

Ответы

Ответ 1

Да есть способ:

Из документов:

Например, следующий код будет хранить загруженные файлы в /media/photos, независимо от того, Настройка MEDIA_ROOT:

from django.db import models
from django.core.files.storage import FileSystemStorage

fs = FileSystemStorage(location='/media/photos')

class Car(models.Model):
    ...
    photo = models.ImageField(storage=fs)