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

Django如何获取模型全部字段?查询时blog_id、created_at不存在如何解决

Django模型已定义字段但查询提示不存在的排查方案

1. 优先检查数据库迁移执行状态

这是该类问题最常见的触发原因:新增/修改模型字段后,没有生成并执行迁移文件,导致模型定义和实际数据库表结构不同步,按顺序执行以下命令即可解决:

  • 生成迁移文件:python manage.py makemigrations
  • 执行迁移同步到数据库:python manage.py migrate

如果执行后依然报错,说明存在旧迁移记录冲突,可以按以下步骤清理后重新同步:

  • 删掉对应app下migrations文件夹里除__init__.py之外的所有文件
  • 清空数据库django_migrations表中对应app的迁移记录
  • 重新执行上述makemigrations和migrate命令

2. 检查模板字段调用写法是否正确

你传递到模板的变量message是博客查询集,需要先遍历再取单个对象的字段,正确示例写法如下:

{% for blog in message %}
    <p>博客ID:{{ blog.blog_id }}</p>
    <p>创建时间:{{ blog.created_at }}</p>
{% endfor %}

如果直接对查询集取字段,写为{{ message.blog_id }}这类格式也会触发字段不存在类报错。

3. 特殊场景排查

如果上面两步操作后问题仍存在,检查是否符合以下情况:

  • 实际操作的数据库和settings.py中配置的数据库不一致,迁移同步到了错误的库
  • 模型定义放错了app,迁移时同步到了其他app对应的表结构中
  • 字段调用时存在拼写错误,注意字段名大小写敏感,比如把created_at误写为create_at

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:48:04