【问题标题】:Errno - 13 Permission denied: '/media/ - DjangoErrno - 13 权限被拒绝:'/media/ - Django
【发布时间】:2021-01-17 04:05:21
【问题描述】:

我在 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

Settings.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

【问题讨论】:

    标签: python django ubuntu django-models permission-denied


    【解决方案1】:

    我遇到了同样的错误并使用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 运行所有内容。因此,您可以改为删除第一个 \ 以使目录相对。

    【讨论】:

    • 这对我很有用,但我不得不使用os.path.join(BASE_DIR, 'media/') 来连接路径字符串。
    【解决方案2】:

    也许您忘记将 MEDIA_ROOT 添加到您的 urls.py。
    欲了解更多信息,请查看docs

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

    注意:这不适合生产使用。如果是这样,您可以查看docs

    【讨论】:

    • 我在创建项目时添加了这一点
    【解决方案3】:
    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
    

    【讨论】:

      猜你喜欢
      • 2019-05-17
      • 2014-03-14
      • 2011-10-18
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2011-06-11
      相关资源
      最近更新 更多