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
相关产品推荐
相关产品推荐

