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

Django自定义模型嵌入User admin报_meta属性错误的解决方法

错误原因

抛出AttributeError: type object 'ProfileInline' has no attribute '_meta'是因为你的admin配置存在两个核心问题:

  • @admin.register()的作用是将ORM模型注册到后台管理,仅能传入实际的模型类作为参数。你当前错误传入了ProfileInline这个内联配置类,Django会尝试读取模型专属的_meta属性,直接触发属性错误。
  • 你没有将自定义的Profile内联配置关联到Django内置User模型的原有Admin配置上,即使修正装饰器错误,Profile字段也不会出现在User的管理页面中。
正确配置步骤

你需要先注销Django默认注册的User模型Admin配置,再重新注册绑定了Profile内联的自定义UserAdmin类,修改后的admin.py完整代码如下:

from django.contrib import admin
from django.contrib.auth.models import User
from .models import Profile

class ProfileInline(admin.StackedInline):
    model = Profile
    can_delete = False
    verbose_name_plural = 'Extra Information'

# 注销User模型默认的后台注册配置
admin.site.unregister(User)

# 重新注册绑定了Profile内联的User后台配置
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
    inlines = [
        ProfileInline,
    ]

配置完成后重启Django服务,进入User模型的新增/编辑页面,就能看到堆叠展示的Profile额外信息模块,和系统默认管理模块的交互逻辑完全一致,你之前存在Profile表中的存量数据也会通过user_id外键自动匹配对应用户正常展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:15:45