Django admin后台已注册的自定义Model不显示问题如何排查?
问题原因
你的模型注册代码写法有误,Django Admin 提供两种注册模型的合法方式,你混淆了装饰器用法和直接注册方法的写法:你写的admin.register(Thing, ThingAdmin)是错误调用,admin.register是装饰器方法,不能直接传参调用,直接注册模型需要调用admin.site.register方法。
修复方案
两种写法任选其一即可,修改后重启Django服务即可正常显示模型:
方案1:使用装饰器注册(更推荐)
from django.contrib import admin from djntra.models import Thing @admin.register(Thing) class ThingAdmin(admin.ModelAdmin): pass
方案2:使用site.register直接注册
from django.contrib import admin from djntra.models import Thing class ThingAdmin(admin.ModelAdmin): pass admin.site.register(Thing, ThingAdmin)
其他排查点
如果修改注册写法后模型仍不显示,请确认两点:
- 注册逻辑写在对应app下的
admin.py文件中,没有放错位置 - 你的app(此处为djntra)已经添加到项目配置的
INSTALLED_APPS列表中
内容的提问来源于stack exchange,提问作者guettli
相关产品推荐
相关产品推荐

