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

Django报错'NoneType' object is not callable,Admin注册Post类问题求解决

问题根因定位

你遇到的'NoneType' object is not callable报错核心原因是Django Admin模型注册装饰器用法错误:

  • Django提供的类装饰器是@admin.register(模型类),你错误写成了@admin.site.register(Post)
  • admin.site.register()本身是直接执行注册的普通函数,调用后返回值为None,将返回值作为装饰器使用时,就会触发None对象不可调用的类型错误。
两种修复方案

方案1:使用正确的装饰器写法

from django.contrib import admin
from .models import Post # 确保提前导入你的Post模型

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'author', 'publish', 'status')
    list_filter = ('status', 'created', 'publish', 'author')

方案2:使用函数式注册写法

如果你不想用装饰器,也可以用传统的注册函数完成绑定:

from django.contrib import admin
from .models import Post # 确保提前导入你的Post模型

class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'author', 'publish', 'status')
    list_filter = ('status', 'created', 'publish', 'author')

# 手动传入模型类和对应的管理类完成注册
admin.site.register(Post, PostAdmin)
额外排查点

如果修改后还有报错,可以检查以下项:

  • 确认Post模型已经提前导入,没有拼写错误
  • 确认list_display、list_filter中配置的字段名,和Post模型中定义的字段名完全一致,没有拼写错误
  • 确认当前admin.py文件所在的App,已经在项目settings.py的INSTALLED_APPS中完成注册

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:48:03