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

Django无法识别自定义User模型问题排查

解决Django中AUTH_USER_MODEL指向未安装模型的问题(不修改INSTALLED_APPS名称)

问题背景

报错信息:

django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'users.User' that has not been installed

当前settings.py配置:

INSTALLED_APPS = [
    ...
    'apps.users',
    ...
]
AUTH_USER_MODEL='users.User'

要求:不能修改INSTALLED_APPS中的应用名称。


解决方案

方案1:修改AUTH_USER_MODEL为完整应用路径

直接将AUTH_USER_MODEL的值改为应用的完整注册路径:

AUTH_USER_MODEL = 'apps.users.User'

Django的AUTH_USER_MODEL要求格式为app_label.ModelName,这里的app_label对应INSTALLED_APPS中注册的应用名称(即apps.users),修改后Django就能正确定位到User模型。

方案2:自定义应用的label(保持AUTH_USER_MODEL不变)

如果希望保留AUTH_USER_MODEL='users.User'的写法,可通过修改应用的配置文件指定自定义label:

  1. 打开apps/users/apps.py文件(无则创建),修改AppConfig类:
from django.apps import AppConfig

class UsersConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'apps.users'  # 必须与INSTALLED_APPS中的名称一致
    label = 'users'  # 手动指定app_label为'users'
  1. 在apps/users/__init__.py中添加以下代码,确保Django加载自定义应用配置:
default_app_config = 'apps.users.apps.UsersConfig'

设置完成后,Django会将该应用识别为users,因此AUTH_USER_MODEL='users.User'就能正确匹配对应的模型,同时INSTALLED_APPS中的apps.users无需修改。


内容的提问来源于stack exchange,提问作者Pedro H. Duque

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:05:07