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

Django中AUTH_USER_MODEL配置报错,求正确设置方法

解决Django自定义User模型的LookupError问题

首先咱们直接戳破问题根源:你的配置和模型的归属完全不匹配,加上模型本身不符合Django的要求,才导致了这个查找错误。我帮你一步步修正:

问题拆解

  • 你的User模型实际放在api这个app的models目录下,但模型Meta类里写了app_label="myapp",同时AUTH_USER_MODEL指定的是myapp.User,但你INSTALLED_APPS里根本没加myapp——Django当然找不到这个不存在的app!
  • 另外,你的User模型没有继承Django提供的用户基类(比如AbstractUser),这会导致Django无法识别它为合法的用户模型。

正确设置步骤

1. 修正User模型代码

你的User模型属于apiapp,所以Meta里的app_label要改成api,而且必须继承Django的用户基类:

# backend/api/models/user.py
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    # 在这里添加你的自定义字段(如果需要的话)
    class Meta:
        app_label = "api"  # 对应INSTALLED_APPS里的app名称

2. 修正settings.py配置

把AUTH_USER_MODEL改成api.User,确保和模型所在的app一致:

# settings.py
AUTH_USER_MODEL = 'api.User'  # 格式:<app名称>.<模型类名>

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'api',  # 这个已经添加,没问题
    # 其他你的app...
]

3. 后续关键操作

  • 如果是新项目:先运行python manage.py makemigrations生成迁移文件,再执行python manage.py migrate完成数据库迁移,之后再运行showmigrations就不会报错了。
  • 如果是已有迁移记录的旧项目:修改AUTH_USER_MODEL会比较棘手,因为Django在第一次迁移后就锁定了用户模型。这种情况建议要么回滚到初始状态,要么重新创建新项目来使用自定义用户模型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:07:37