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 个回答
28
是的,确实有办法:
根据文档:
比如,下面的代码会把上传的文件存储在/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)