Errno 13权限被拒绝Django上传文件

时间:2013-09-11 09:54:58

标签: django django-admin

我看过所有其他解决方案,但似乎没有什么对我有用。我在我的设置中有这个。

MEDIA_ROOT = '/Desktop/myapp/media/'
MEDIA_URL = 'http://127.0.0.1:8000/media/'

这在我的admin.py

    image = models.FileField(upload_to='images/')

我现在正在localhost服务器上运行它。当我尝试在管理员中上传图像并保存时,我收到错误:

[Errno 13] Permission denied: '/Desktop'

我尝试使用chmodchown更改模式,但我仍然遇到同样的错误。我甚至检查过lsof -i,Python似乎确实可以访问这个文件夹。我做错了什么?

2 个答案:

答案 0 :(得分:8)

我在绝对路径上遇到了同样的问题,但我意识到了其他一些问题。我正在加入这样的道路:

os.path.join(BASE_DIR, "/media")

但是,如documentation所述:

  

如果组件是绝对路径,则抛出所有先前的组件   离开并从绝对路径组件继续加入。

因此删除根斜杠可以解决问题:

os.path.join(BASE_DIR, "media")

干杯。

答案 1 :(得分:7)

好吧,我好像回答了自己的问题。事实证明,这是一个非常小的问题。我所做的只是将媒体根改为完整的路径而且瞧。

MEDIA_ROOT = 'Users/username/Desktop/myapp/media/'