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

求助: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的情况下执行的,需要完全重置:

    1. 删除项目根目录下的db.sqlite3文件(使用SQLite时)
    2. 删除recipe_book应用下migrations文件夹中除__init__.py外的所有迁移文件
    3. 重新执行迁移命令:
      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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:54:41