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

Django后台管理页面上传图片异常求助(附模型代码)

Django后台上传图片异常解决步骤

1. 安装图片处理依赖

ImageField依赖Pillow库,先确认是否安装:

pip install pillow

若已安装,尝试更新至最新版本:

pip install --upgrade pillow

2. 配置媒体文件参数

在项目settings.py中添加以下配置:

# 媒体文件本地存放路径
MEDIA_ROOT = BASE_DIR / 'media'
# 媒体文件访问URL前缀
MEDIA_URL = '/media/'

确保BASE_DIR已正确定义(默认Django项目自动生成):

from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent

3. 配置媒体文件路由

在项目根目录的urls.py中添加媒体文件路由:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 保留原有路由,比如admin路由
    path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

注意:此配置仅适用于开发环境,生产环境需用Nginx/Apache等服务器处理媒体文件。

4. 检查上传目录权限

确保media/foods/目录存在,且运行Django的用户拥有读写权限:

  • 手动创建目录:
mkdir -p media/foods
  • 调整权限(Linux/macOS环境):
chmod -R 755 media/

5. 模型字段检查

你的模型中图片字段名为p2hoto(疑似拼写错误,建议改为photo),虽不影响上传功能,但会增加后续维护成本:

photo=models.ImageField(upload_to='foods/' , max_length=20000 )

修改后需执行迁移:

python manage.py makemigrations
python manage.py migrate

6. 清理缓存并重启服务

完成以上步骤后仍有问题,清理Django缓存并重启开发服务器:

python manage.py clearcache
python manage.py runserver

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:33:16