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

Django后台添加文章时触发OperationalError:blog_post表不存在author_id列

Django后台添加文章时触发OperationalError:blog_post表不存在author_id列

看起来你遇到的是典型的模型定义与数据库表结构不同步的问题!

从你提供的初始迁移文件(0001_initial)可以看到,里面完全没有author相关的字段,说明你是在已经生成并应用了初始迁移之后,才给Post模型加上了author这个ForeignKey字段,但没有生成新的迁移文件来同步这个变更到数据库——这就导致数据库里的blog_post表根本没有author_id列,所以在后台添加文章时触发了OperationalError。

给你几个简单的步骤来解决这个问题:

  • 第一步:生成新的迁移文件,让Django记录下你添加author字段的变更:

    python manage.py makemigrations
    

    执行后,你会在blog/migrations目录下看到一个新的迁移文件(比如0002_post_author.py),里面会包含添加author_id字段的操作逻辑。

  • 第二步:执行迁移,把这个变更同步到数据库中:

    python manage.py migrate
    
  • 第三步:现在回到Django后台,尝试添加新文章,这个错误应该就会消失了。

小提醒:以后每次修改models.py里的模型字段(添加、删除、修改字段属性)后,都要记得先运行makemigrations生成迁移,再运行migrate同步到数据库,不然很容易出现模型和数据库结构不匹配的问题。另外,确认你的models.py里已经正确导入了User模型:from django.contrib.auth.models import User,从你的代码来看这部分应该是没问题的。

备注:内容来源于stack exchange,提问作者arielkoo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:39:33