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

Django添加模型外键执行迁移后无法访问admin,提示media/admin路径不存在

解决方案

你遇到的admin访问异常问题和sites框架无关,核心是路由匹配优先级错误、媒体资源配置不全两个原因导致,按以下步骤操作即可修复:

1. 修正settings.py配置

打开项目commerce/settings.py文件,调整媒体资源相关配置:

  • 删除冗余的MEDIA_ROOT = '/media/'配置(后面的同字段配置已经覆盖了这行)
  • 新增MEDIA_URL配置,修改后完整的媒体资源配置如下:
# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2. 调整项目路由顺序

打开项目commerce/urls.py文件,确保admin路由的优先级高于媒体资源路由,正确配置参考:

from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # admin路由必须放在最前面,避免被其他规则拦截
    path('admin/', admin.site.urls),
    # 其他业务路由请写在admin路由之后
]
# 媒体资源路由要放在urlpatterns列表之外追加,不能写到urlpatterns里面
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

注:如果之前你把媒体资源的static配置写到了urlpatterns列表内部、且放在admin路由前面,就会导致Django把/admin/xxx路径识别为媒体资源,去media目录下查找对应文件,这就是你报错的核心原因。

3. 手动创建media目录

在项目根目录(和db.sqlite3、auctions文件夹同级的位置),手动新建一个名为media的空文件夹。

4. 重启服务验证

修改完成后重启Django开发服务,再次访问admin后台即可正常打开。

补充:如果后续上传Listing的图片时报依赖错误,执行pip install pillow安装图片处理依赖即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:54:03