You need to enable JavaScript to run this app. 扩展Django的AbstractUser后生成额外认证表的疑问咨询
优惠活动
大模型
产品
解决方案
定价
更多

扩展Django的AbstractUser后生成额外认证表的疑问咨询

表的作用说明

auth 应用生成的表

  • auth_permission:Django auth 模块的全局权限存储表,所有模型默认的增删改查权限、自定义权限都会统一存在这里,只要你在INSTALLED_APPS中开启了django.contrib.auth就会生成该表。
  • auth_group:用户组表,支持将用户划分到不同组,对组统一分配权限,同组用户可继承组的所有权限。
  • auth_group_permissions:auth_group和auth_permission的多对多关系中间表,存储每个组绑定的权限数据。

core 应用生成的额外表

你之所以会生成这两张表,是因为你继承了AbstractUser类,该类默认内置了groups、user_permissions两个多对多字段,多对多关系在数据库层面必然会生成中间表:

  • core_user_groups:你的自定义User模型和auth_group的多对多中间表,存储每个用户所属的用户组。
  • core_user_user_permissions:你的自定义User模型和auth_permission的多对多中间表,存储直接分配给单个用户的独立权限(不通过用户组继承的权限)。

这些表是否需要保留?

  • 如果你需要用到Django自带的权限校验、admin后台权限管理、用户组功能,这些表都是必须的,AbstractUser自带的这些逻辑能帮你省去大量权限相关的自研代码,即使暂时用不上,保留这些表也不会对现有功能造成任何性能影响,不需要额外处理。
  • 如果你完全不需要权限、用户组相关的功能,不想生成这些表,可以将自定义用户类的继承对象从AbstractUser换成AbstractBaseUser,这个类仅包含用户登录、密码校验的核心逻辑,不会内置多对多权限相关字段,也就不会生成上述多余表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 20:45:10