Django项目迁移失败:自定义User模型关联解析错误求助
问题排查与修复步骤
1. 修复User模型Meta类的语法错误
你的User模型Meta类中,verbose_name和verbose_name_plural末尾多了逗号,导致这两个属性被解析成元组而非字符串,干扰了Django对模型的识别逻辑:
class Meta: verbose_name = 'Пользователь' # 去掉末尾的逗号 verbose_name_plural = 'Пользователи' # 去掉末尾的逗号
2. 确认'reviews'应用已注册到INSTALLED_APPS
检查settings.py配置,确保'reviews'已添加到INSTALLED_APPS列表:
INSTALLED_APPS = [ # 其他内置/第三方应用... 'reviews', ]
3. 清理旧迁移文件并重新生成
如果之前生成过迁移文件,可能残留了错误的模型引用记录:
- 进入
reviews/migrations/目录,删除除__init__.py之外的所有文件 - 依次执行命令重建迁移:
python manage.py makemigrations python manage.py migrate
4. 检查其他模型对User的引用格式
若项目中有其他模型通过外键关联User,确保引用格式正确:
- 使用字符串引用:
models.ForeignKey('reviews.User', on_delete=models.CASCADE, ...) - 或直接导入模型后引用:
from reviews.models import User; models.ForeignKey(User, on_delete=models.CASCADE, ...)
内容的提问来源于stack exchange,提问作者Vladimir Shevchenko
相关产品推荐
相关产品推荐

