You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django通过模型上传文件报[Errno 13] Permission denied: '/samples'错误如何解决

可能遗漏的配置及排查方向

  • MEDIA相关配置缺失/错误
    Django的FileField字段的upload_to参数是相对MEDIA_ROOT配置的路径,而非直接相对BASE_DIR。你需要在settings.py中添加如下配置:
# 配置媒体文件存储根路径
MEDIA_ROOT = BASE_DIR
# 配置媒体文件访问路由(可选,仅前台访问时需要)
MEDIA_URL = '/media/'

如果你不想把samples直接放在BASE_DIR根目录,也可以调整MEDIA_ROOT为BASE_DIR / 'media',同时把samples目录移动到media目录下即可。

  • 自定义文件验证器规则错误
    检查你写的validate_file_extension验证器逻辑:是否允许你当前上传的文件后缀、是否处理了后缀大小写问题(比如只允许小写.xlsx但实际上传的是大写.XLSX)、是否有误判文件类型的逻辑。可以先临时注释掉验证器测试上传是否正常,排查是否是验证器导致的报错。

  • 上传文件大小超出限制
    Django默认单文件上传最大限制为2.5MB,如果你的样本文件超过这个大小会触发报错,可以在settings.py中调整阈值:

# 单位为字节,以下示例为调整为50MB
FILE_UPLOAD_MAX_MEMORY_SIZE = 50 * 1024 * 1024
  • 关联字段未赋值
    你的模型中area是未设置null=True、blank=True的OneToOneField,属于必填字段。如果在后台上传时没有选择对应的Actions关联对象,保存时会直接报错,很容易被误判为是文件上传导致的问题。

  • 查看具体报错日志
    优先查看Django运行日志、Web服务(Nginx/Apache)的错误日志,根据日志中明确的报错信息定位问题,效率远高于盲试配置。

内容的提问来源于stack exchange,提问作者Sidharth kaushik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:27:02