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

Django移动自定义User模型到models子目录报AUTH_USER_MODEL未安装错误

解决方案

你遇到的报错核心原因是Django默认仅扫描应用根目录下的models.py文件中的模型定义,拆分模型到子目录后需要额外配置才能被Django识别,按以下步骤操作即可解决:

步骤1:调整目录结构

在myapp目录下创建models文件夹,最终目录结构如下:

[myapp]/
├── __pycache__/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models/
│   ├── __init__.py
│   └── user.py

原根目录下的models.py可以直接删除。

步骤2:编写模型文件

将原来models.py中的User模型代码完整复制到myapp/models/user.py中,内容保持不变:

from django.db import models
from django.contrib.auth.models import AbstractBaseUser

class User(AbstractBaseUser):
    id = models.CharField(max_length=15, null=False, blank=False, primary_key=True, unique=True)

    USERNAME_FIELD = "id"

步骤3:配置模型包的初始化文件

在myapp/models/__init__.py中添加以下导入语句,将User模型暴露到myapp.models命名空间下,让Django可以识别到该模型:

from .user import User

步骤4:验证配置

执行python manage.py makemigrations --dry-run命令,此时不会再抛出找不到User模型的错误。如果此前已经生成过旧的迁移文件,只需要确保迁移文件中对User模型的引用方式不变即可,无需额外修改迁移内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:54:04