我看过所有其他解决方案,但似乎没有什么对我有用。我在我的设置中有这个。
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'
我尝试使用chmod
和chown
更改模式,但我仍然遇到同样的错误。我甚至检查过lsof -i,Python似乎确实可以访问这个文件夹。我做错了什么?
答案 0 :(得分:8)
我在绝对路径上遇到了同样的问题,但我意识到了其他一些问题。我正在加入这样的道路:
os.path.join(BASE_DIR, "/media")
但是,如documentation所述:
如果组件是绝对路径,则抛出所有先前的组件 离开并从绝对路径组件继续加入。
因此删除根斜杠可以解决问题:
os.path.join(BASE_DIR, "media")
干杯。
答案 1 :(得分:7)
好吧,我好像回答了自己的问题。事实证明,这是一个非常小的问题。我所做的只是将媒体根改为完整的路径而且瞧。
MEDIA_ROOT = 'Users/username/Desktop/myapp/media/'