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

Django执行migrate报错:'str' object has no attribute '_meta'

解决Django全新项目migrate时AttributeError问题

问题分析

报错出现在auth.0013_user_following迁移步骤,错误AttributeError: 'str' object has no attribute '_meta'通常是因为用户模型的引用格式错误,或者数据库残留了错误的迁移状态。

解决方案

1. 检查settings.py中的AUTH_USER_MODEL配置

打开项目根目录的settings.py,找到AUTH_USER_MODEL配置项:

  • 默认值应为AUTH_USER_MODEL = 'auth.User'(或完整格式'django.contrib.auth.models.User')
  • 如果该配置被修改为'User'这类不完整的字符串格式,会导致Django无法正确识别模型,恢复为默认值即可。

2. 清理数据库文件

若使用SQLite数据库:

  • 删除项目根目录下的db.sqlite3文件
  • 重新执行迁移命令:
python manage.py migrate

3. 重建干净的虚拟环境

  1. 删除原虚拟环境文件夹
  2. 创建并激活新虚拟环境:
# Windows系统
python -m venv myenv
myenv\Scripts\activate

# macOS/Linux系统
python3 -m venv myenv
source myenv/bin/activate
  1. 安装对应版本的Django:
pip install django==4.x  # 替换为你使用的具体Django版本
  1. 重新创建项目与应用,再执行迁移操作。

4. 排查全局配置干扰

检查用户目录下是否存在django.conf相关配置文件,或是否设置了影响Django的环境变量,确保这些内容不会干扰项目的默认配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:01:23