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

gee*_*hic 3 django django-admin

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

MEDIA_ROOT = '/Desktop/myapp/media/'
MEDIA_URL = 'http://127.0.0.1:8000/media/'
Run Code Online (Sandbox Code Playgroud)

这在我的admin.py中

    image = models.FileField(upload_to='images/')
Run Code Online (Sandbox Code Playgroud)

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

[Errno 13] Permission denied: '/Desktop'

我尝试使用chmod和更改模式chown,但我仍然得到相同的错误.我甚至检查过lsof -i,Python似乎确实可以访问这个文件夹.我究竟做错了什么?

And*_*lli 9

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

os.path.join(BASE_DIR, "/media")
Run Code Online (Sandbox Code Playgroud)

但是,正如文件所述:

如果组件是绝对路径,则抛弃所有先前组件并从绝对路径组件继续连接.

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

os.path.join(BASE_DIR, "media")
Run Code Online (Sandbox Code Playgroud)

干杯.


gee*_*hic 7

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

MEDIA_ROOT = 'Users/username/Desktop/myapp/media/'
Run Code Online (Sandbox Code Playgroud)