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

Django报错:CustomUserAdmin不存在_meta属性的问题求助

问题分析与解决

你的错误不是因为缺少Meta类,而是注册模型到admin时的语法错误导致的。

错误根源

admin.site.register()的正确用法是:第一个参数传入要注册的模型类,第二个可选参数传入对应的Admin管理类。你现在把CustomUser和CustomUserAdmin放在一个元组里传递,导致Django误将CustomUserAdmin当成了需要注册的模型——而Admin类本身并不具备模型才有的_meta属性,因此触发了这个报错。

修复步骤

把你的注册代码从:

admin.site.register((CustomUser, CustomUserAdmin))

改成:

admin.site.register(CustomUser, CustomUserAdmin)

完整修正后的admin.py代码

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

""" The final step is to update our admin.py file since the admin is tightly coupled to the default
User model. We will extend the existing UserAdmin class to use our new CustomUser model.
To control which fields are listed, we use list_display. But to actually edit new custom fields,
like age, we must add fieldsets. And to include a new custom field in the section for creating a
new user we rely on add_fieldsets.""" 
# 
# Register your models here.
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = [
        "email",
        "username",
        "age",
        "is_staff",
    ]
    fieldsets = UserAdmin.fieldsets + ((None, {"fields": ("age",)}),)
    add_fieldsets = UserAdmin.add_fieldsets + ((None, {"fields": ("age",)}),)

# 修正后的注册语句
admin.site.register(CustomUser, CustomUserAdmin)

验证

修改完成后重新执行python manage.py makemigrations accounts,就能正常生成迁移文件了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:42:28