Python Django上载的文件不在MEDIA_根路径中,给了我可疑的操作错误

Python Django上载的文件不在MEDIA_根路径中,给了我可疑的操作错误,python,django,django-uploads,Python,Django,Django Uploads,我想将文件上载到django项目中的路径,但该路径位于我的MEDIA\u ROOTpath中 当我尝试这样做时,我得到一个可疑的操作错误 以下是我的设置文件中定义的路径: MEDIA_ROOT = os.path.join(os.path.dirname( __file__ ), 'static_serve') UPLOAD_DIR = os.path.join(os.path.dirname( __file__ ), 'uploads') 我这样做是因为我不想通过浏览器访问正在上载的文件,而

我想将文件上载到django项目中的路径,但该路径位于我的
MEDIA\u ROOT
path中

当我尝试这样做时,我得到一个可疑的操作错误

以下是我的设置文件中定义的路径:

MEDIA_ROOT = os.path.join(os.path.dirname( __file__ ), 'static_serve')
UPLOAD_DIR = os.path.join(os.path.dirname( __file__ ), 'uploads')
我这样做是因为我不想通过浏览器访问正在上载的文件,而我的
媒体\u ROOT
路径是

有人知道我是如何绕过(修复)这个错误的吗。

是:

从文档:

例如,下面的代码将 将上载的文件存储在 /媒体/照片,无论您的 媒体根目录设置为:


您可以禁止web服务器公开为MEDIA_ROOT下的某些目录提供服务。我正在使用测试服务器。。。在Windows XP上。我也不太确定如何做到这一点,我不认为开发服务器可以,但任何生产就绪的web服务器都应该能够限制对文件的访问。例如,Apache就是这样做的。那么,是否不可能在媒体根路径之外上传文件?我希望是因为如果找不到解决方案,我将不得不重做大量代码。+1这是值得知道的。太糟糕了,OP不会投票给这是最好的答案。我也有同样的问题。按照你(和文档)所说的做了,我得到了以下例外情况
文件字段需要“上传到”属性。
我将整个块粘贴在这里:有什么想法吗?只需将上传到添加到与位置相同的值。@Tom,你错了。“位置”属性是绝对路径,而“上载到”是相对路径,并附加到“媒体”根。
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)