求助:Django无法访问自定义User表(recipe_book_user)的问题
解决Django自定义User模型提示“no such table: recipe_book_user”的问题
检查
settings.py的用户模型配置
自定义继承AbstractUser的User模型后,必须在项目的settings.py中指定默认用户模型,否则Django仍会使用默认的auth_user表。添加以下配置:AUTH_USER_MODEL = 'recipe_book.User'注意:这个配置必须在第一次执行
migrate前设置,如果之前已经执行过migrate后才添加,必须彻底重置数据库。彻底重置数据库与迁移文件
如果之前的migrate操作是在未配置AUTH_USER_MODEL的情况下执行的,需要完全重置:- 删除项目根目录下的
db.sqlite3文件(使用SQLite时) - 删除
recipe_book应用下migrations文件夹中除__init__.py外的所有迁移文件 - 重新执行迁移命令:
python manage.py makemigrations python manage.py migrate
执行
migrate时,注意查看输出日志,确认是否有Creating table recipe_book_user的提示,确保表被正确创建。- 删除项目根目录下的
确认Admin页面的模型注册
在recipe_book/admin.py中正确注册自定义User模型,需要使用UserAdmin来保证Admin页面的功能正常:from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import User admin.site.register(User, UserAdmin)验证迁移状态
执行python manage.py showmigrations命令,查看recipe_book应用的迁移是否都已标记为[X](已应用),如果有未应用的迁移,检查是否有报错信息。
内容的提问来源于stack exchange,提问作者spheroidic
相关产品推荐
相关产品推荐

