You need to enable JavaScript to run this app. Django自定义用户模型后访问Admin用户页提示users_user_groups不存在报错
优惠活动
大模型
产品
解决方案
定价
更多

Django自定义用户模型后访问Admin用户页提示users_user_groups不存在报错

Django自定义用户模型报错users_user_groups不存在解决方法

报错原文:

relation "users_user_groups" does not exist LINE 1: ... "auth_group"."name" FROM "auth_group" INNER JOIN "users_use...

错误根因

你自定义的User模型继承了PermissionsMixin,这个类会自动生成用户与权限组、用户与全局权限的两个多对多关联表users_user_groups、users_user_user_permissions,报错说明这两个表没有被正确创建,通常是配置错误、迁移流程出错导致的。

修复步骤

1. 检查核心配置

确认settings.py中已经添加自定义用户模型的指定配置,注意要替换成你自己的App名称:

# 比如你的用户模型写在users这个App的models.py里,配置如下
AUTH_USER_MODEL = "users.User"

注意:这个配置必须在第一次执行项目迁移前添加,如果是已经执行过默认auth表迁移后才添加,就会出现关联表不生成的问题,需要按第二步清理旧迁移。

2. 清理旧迁移并重新生成

如果是开发环境,建议直接按以下流程重置迁移:

  • 删除你的用户模型所在App下migrations文件夹中,除了__init__.py之外的所有文件
  • 清空数据库(如果数据不重要直接删库重建即可),或者至少删除数据库中django_migrations表里所有和auth、用户App相关的迁移记录
  • 重新执行迁移命令:
python manage.py makemigrations
python manage.py migrate

3. 修正Admin注册逻辑

不要用默认的ModelAdmin注册自定义用户模型,要使用Django自带的UserAdmin适配,避免Admin读取默认auth表的字段,示例代码:

# users/admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from .models import User

class UserAdmin(BaseUserAdmin):
    fieldsets = (
        (None, {'fields': ('email', 'username', 'password')}),
        ('权限配置', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
        ('时间信息', {'fields': ('date_joined', 'last_login')}),
    )
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('email', 'username', 'password1', 'password2'),
        }),
    )
    list_display = ('email', 'username', 'is_staff')
    search_fields = ('email', 'username')
    ordering = ('email',)

admin.site.register(User, UserAdmin)

4. 额外代码修正

你自定义User模型里的权限方法名写错了,has_module_perm末尾要加s,正确写法是:

def has_module_perms(self, app_label):
    return True

否则权限校验的时候会出现未知异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:27:01