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

Django admin添加数据不显示在网页且makemigrations报错如何解决?

问题原因
  1. 迁移报错原因:你的researchpaper数据库表中已经存在历史数据,后续新增的link字段为非空类型,Django无法自动为已有历史行填充该字段的值,因此触发迁移报错。
  2. 前端数据不展示原因:HTML模板中调用的模型字段名和models.py中定义的字段名不匹配,且年份写死为固定值,导致即使数据库有正确数据也无法正常渲染。
  3. admin面板报错原因:数据库迁移未完成,表结构和模型定义不匹配,操作admin时触发字段校验错误。
解决步骤
  • 处理迁移报错:首先选择迁移提示的选项2,退出迁移流程,修改models.py中的link字段,根据业务需求添加默认值或者允许为空:
    # 方案1:设置默认空字符串,适合必填字段
    link = models.CharField(max_length=300, default='')
    # 方案2:允许为空,适合非必填字段
    # link = models.CharField(max_length=300, blank=True, null=True)
    
  • 修正HTML模板的字段调用错误:
    1. 将{{public.publications}}修改为{{public.publication}},和models中定义的字段名保持一致
    2. 将{{public.author}}修改为{{public.authors}},和models中定义的字段名保持一致
    3. 将写死的<h5>2021</h5>修改为<h5>{{public.year.year}}</h5>,动态读取论文发表年份
    4. 可将a标签的href="#"修改为href="{{public.link}}",实现点击跳转到对应论文链接
  • 重新执行迁移命令:
    python manage.py makemigrations
    python manage.py migrate
    
  • 检查admin.py配置,确保已经注册了researchpaper模型,否则admin面板无法正常操作该模型数据:
    from django.contrib import admin
    from .models import researchpaper
    
    admin.site.register(researchpaper)
    
  • 重启Django服务,在admin面板重新添加测试数据,访问前端页面即可看到正常渲染的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:54:03