Errno - 13 权限被拒绝: '/media/ - Django



我在ubuntu、中使用Django 3.1

我在上传媒体文件时出错

PermissionError at /admin/main/artist/1/change/
[Errno 13] Permission denied: '/media/artists'
Exception Type: PermissionError
Exception Value:    
[Errno 13] Permission denied: '/media/artists'
Exception Location: /usr/lib/python3.8/os.py, line 223, in makedirs
Python Executable:  /home/rahul/.local/share/virtualenvs/music-69qL54Ia/bin/python

此代码适用于windows,但不适用于ubuntu

设置.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / '/media/'

型号.py

class Artist(models.Model):
image = models.ImageField(upload_to='artists/%Y/%m/%d/', default='demo-artist.jpg', null=True, blank=True)

我试过了,但没有用

https://stackoverflow.com/questions/21797372/django-errno-13-permission-denied-var-www-media-animals-user-uploads

我得到了同样的错误,并使用shell进行了调试

settings.py文件中:更改:

MEDIA_ROOT = BASE_DIR / '/media/'
# here, MEDIA_ROOT = '/media/'

收件人:

MEDIA_ROOT = BASE_DIR / 'media/'
# here, MEDIA_ROOT = 'path-to-project/media/'

我认为发生这种情况是因为您正试图将your project level dir加入到linux中存在的/media/目录中以装载介质。并且会因为root具有写入权限而导致权限被拒绝,您可能没有使用sudo运行所有内容。因此,您可以删除第一个,使目录成为相对目录。

mkdir --mode=777 -pv /home/rahul/.local/share/virtualenvs/music-69qL54Ia/{admin/main/artist/1/change,media/artists}
chmod -R 777 /home/rahul/.local/share/virtualenvs/music-69qL54Ia

也许您忘记将MEDIA_ROOT添加到urls.py中。
有关更多信息,请查看文档

urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

注意:这不适合生产使用。如果是这样的话,你可以签出文档

相关内容

  • 没有找到相关文章

最新更新