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

修改Django模型后执行migrations admin站点无变化该如何解决?

排查解决步骤

1. 检查admin站点配置

90%的这类问题都是修改模型后没有同步修改admin的字段配置导致的,打开你对应app下的admin.py文件:

  • 如果你自定义了Post模型的管理类,检查以下配置项是否包含title_tag字段:
    • fields/fieldsets:控制新增/编辑页显示的字段,没加的话表单里看不到该字段
    • list_display:控制列表页显示的字段,没加的话列表不会展示该字段
    • exclude:如果配置了排除字段,确认没有把title_tag加进去
      示例正确配置参考:
    from django.contrib import admin
    from .models import Post
    
    class PostAdmin(admin.ModelAdmin):
        list_display = ('title', 'title_tag', 'author')
        fields = ('title', 'title_tag', 'author', 'body')
    
    admin.site.register(Post, PostAdmin)
    
  • 如果你没有自定义管理类,直接用admin.site.register(Post)注册,跳过这步往下排查。

2. 确认迁移已正确执行到数据库

makemigrations只是生成迁移文件,需要执行迁移命令才会把变更同步到数据库:

  • 执行命令 python manage.py migrate,查看输出日志,确认blog应用的0002迁移已被成功应用,没有报错。
  • 如果你之前删除过数据库和迁移文件,建议重新走完整迁移流程:
    • 删除blog/migrations目录下除__init__.py之外的所有文件
    • 删除根目录下的db.sqlite3文件
    • 执行python manage.py makemigrations blog
    • 执行python manage.py migrate
    • 执行python manage.py createsuperuser重新创建管理员账号

3. 验证运行环境缓存问题

  • 按Ctrl+F5强制刷新admin页面,清理浏览器静态资源缓存,也可以换个浏览器打开验证
  • 手动停止Django开发服务,重新执行python manage.py runserver启动服务,避免热重载失效导致代码未生效

4. 底层校验模型字段状态

可以通过Django Shell确认模型字段是否真的生效:

  • 执行python manage.py shell进入交互环境
  • 运行以下代码查看Post模型的所有字段:
    from blog.models import Post
    print([field.name for field in Post._meta.fields])
    
  • 如果输出结果包含title_tag,说明模型和数据库层面都正常,问题一定出在admin配置上;如果没有包含,回到第二步重新执行迁移流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:09:04