
当自定义用户模型(如 'book.customuser')未在 installed_apps 中注册时,django 启动会抛出 improperlyconfigured 异常,需确保对应应用已正确安装。
在 Django 项目中,若通过 AUTH_USER_MODEL = 'book.CustomUser' 指定了自定义用户模型,Django 会在启动时校验该模型是否真实存在且可导入。而“model 'book.CustomUser' that has not been installed”这一错误明确表示:虽然模型路径语法正确,但 Django 并未将 book 应用识别为已启用的应用——根本原因在于 book 未被添加到 INSTALLED_APPS 设置中。
✅ 正确做法是,在 settings.py 的 INSTALLED_APPS 列表中显式注册 book 应用:
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 其他已启用的应用...
'book', # ← 关键:必须添加这一行
]⚠️ 注意事项:
- book 是应用名(即包含 models.py 的 Python 包名),不是模块路径或模型类名;
- 修改 INSTALLED_APPS 后,需重启开发服务器使配置生效;
- 若 book 应用尚未创建迁移,请运行 python manage.py makemigrations book 和 python manage.py migrate;
- AUTH_USER_MODEL 必须在项目首次迁移前就配置好;若已在生产环境使用默认用户模型,切换自定义用户模型需谨慎处理数据迁移。
完成配置后,Django 将成功加载 book.CustomUser,该异常即可消除。这是 Django 用户系统扩展中最基础也最关键的配置步骤之一。

