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

使用Django自定义AbstractUser模型后,db.sqlite3中无法查看该模型

Django自定义用户模型没在SQLite数据库显示的解决办法

先查这些关键点

  • 迁移是否真的生效了
    执行python manage.py showmigrations,查看base应用下的迁移项是否都标有[X]。如果没生成迁移文件,先删除base/migrations目录下除__init__.py外的所有文件,再重新执行python manage.py makemigrations base,必须看到检测到CustomUser模型变化的提示才算正常。
  • AUTH_USER_MODEL配置是否正确
    确认settings.py里的AUTH_USER_MODEL = 'base.CustomUser'拼写完全准确:base是你的应用名,CustomUser是模型类名,且该应用已添加到INSTALLED_APPS中,不能有任何拼写错误。
  • 是不是找错数据库文件了
    迁移完成后,确保你打开的db.sqlite3是项目根目录下的最新文件,不要误打开旧版本或其他位置的同名文件。实在不确定就删除旧数据库文件,重新执行python manage.py migrate从头生成。
  • 模型定义有没有问题
    保证CustomUser正确继承自AbstractUser,示例代码如下:
    from django.contrib.auth.models import AbstractUser
    from django.db import models
    
    class CustomUser(AbstractUser):
        # 自定义字段示例,比如手机号
        phone = models.CharField(max_length=11, blank=True)
    
        class Meta:
            db_table = 'custom_user'  # 可选,指定表名方便在数据库中查找
    
  • 用SQLite命令行直接验证最准确
    在终端执行sqlite3 db.sqlite3打开数据库,输入.tables命令列出所有表,查找base_customuser(默认表名格式:应用名_模型名)或你指定的custom_user表。

容易踩的坑

  • 如果是中途修改AUTH_USER_MODEL,之前已经生成过原生auth_user表,必须清空所有迁移文件和数据库,重新初始化,否则Django会一直保留对旧表的引用。
  • 使用第三方数据库查看工具时,记得刷新连接或重启工具,否则可能无法显示新生成的表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:52:39