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

Django REST Framework报错relation "stock_stocks"不存在如何解决?

报错原因与解决方案

核心原因

这个ProgrammingError: relation "stock_stocks" does not exist报错是因为PostgreSQL数据库中没有生成你的Stocks模型对应的数据库表,Django的模型定义没有同步到数据库中导致的。

解决步骤

  • 第一步:确认应用已注册
    打开portfolio/settings.py,检查INSTALLED_APPS列表中已添加以下两项:
    INSTALLED_APPS = [
        # 其他默认应用
        'rest_framework',
        'stock',
    ]
    
    未注册的应用不会被Django的迁移工具扫描,也就不会生成对应表。
  • 第二步:生成迁移文件
    在项目根目录下执行命令,生成stock应用的模型迁移文件:
    python manage.py makemigrations stock
    
    执行完成后检查stock/migrations目录下是否生成了0001_initial.py开头的迁移文件。
  • 第三步:执行迁移同步到数据库
    执行以下命令将迁移文件的表结构同步到PostgreSQL数据库:
    python manage.py migrate stock
    
    执行完成后即可在数据库中看到生成的stock_stocks表,报错即可解决。

异常场景处理

如果执行上述步骤后仍报错,可按以下情况排查:

  • 若你之前手动删除过迁移文件,需要先进入PostgreSQL数据库,删除django_migrations表中所有app字段为stock的记录,再重新执行上述第二步、第三步命令。
  • 确认settings.py中的PostgreSQL连接配置正确,没有连接到其他空库。
  • 确认你没有在Stocks模型的Meta类中自定义db_table参数,若自定义了该参数需要保证表名和报错中的表名匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:36:06