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

Django Admin新增Part时报no such table: parts_part错误如何解决

Django Admin新增Part记录提示no such table: parts_part修复方案

问题复现场景

  • 访问 /admin/parts/part/add/ 路径提交Part新增请求时,页面抛出OperationalError异常
  • 错误详情:no such table: parts_part
  • 多次修改models.py、admin.py相关代码后,使用超级用户账号操作仍稳定复现问题,无法完成Part新增

报错核心原因

这个问题和admin配置、账号权限没有关联,本质是Django当前连接的数据库中,没有生成Part模型对应的parts_part数据表——只改模型代码不做数据库同步,永远无法解决这个报错。

分步修复操作

  1. 先检查配置正确性
    打开项目的settings.py文件,确认INSTALLED_APPS列表中已经注册了parts应用,否则Django不会扫描到该应用下的模型,示例配置:
    INSTALLED_APPS = [
        "django.contrib.admin",
        "django.contrib.auth",
        "django.contrib.contenttypes",
        "django.contrib.sessions",
        "django.contrib.messages",
        "django.contrib.staticfiles",
        "parts",  # 必须添加你的parts应用到这里
    ]
    
  2. 生成模型迁移文件
    在项目根目录执行命令,为parts应用生成数据库迁移脚本:
    python manage.py makemigrations parts
    

    如果执行后提示No changes detected in app 'parts',先检查parts/models.py中的Part模型是否正确继承models.Model,类定义有没有语法错误。

  3. 同步迁移到数据库
    执行迁移生效命令,自动在数据库中创建对应的数据表:
    python manage.py migrate
    
  4. 验证修复效果
    清理浏览器缓存后重新登录admin后台,再访问Part新增页面提交数据即可正常操作。

常见特殊场景处理

  • 如果之前执行过迁移但表始终没生成:先删除parts应用下migrations目录里除__init__.py之外的所有文件,再重新执行上面的makemigrations和migrate命令即可
  • 如果使用SQLite数据库:确认项目根目录下的db.sqlite3文件对当前启动项目的用户有读写权限,不要用root权限执行runserver,避免权限冲突导致表写入失败
  • 不要手动修改数据库自动生成的表名:Django默认表名规则是应用名_模型名小写,Part模型对应表名固定为parts_part,手动改表名会直接导致ORM匹配不到表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:01:20