Django项目注册Post模型至admin.py时出现NameError: 'Post'未定义
解决Django中Post模型注册时的NameError问题
我来帮你搞定这个报错!你遇到的NameError: name 'Post' is not defined,本质就是Django的admin模块找不到你定义的Post模型,大概率是导入环节出问题了,咱们一步步排查:
最常见的解决方法:补充模型导入
你在admin.py里注册模型的时候,肯定是直接写了admin.site.register(Post),但忘记先把Post模型导入进来了。解决方法很简单:
在admin.py文件的最顶部加上导入语句:
# 如果Post模型和admin.py在同一个app下 from .models import Post # 如果是其他app的模型,替换成对应的app名称 from your_app_name.models import Post
其他可能的排查点
- 检查模型文件:确保你的Post模型确实写在
models.py文件里,别把文件名拼错成model.py了,Django默认只会识别models.py里的模型。 - 检查类名拼写:确认模型类名是大写开头的
Post,不是小写的post或者全大写的POST,Python是大小写敏感的,拼写错误会导致找不到类。
额外小提示(不影响当前报错,但影响模型功能)
看了你贴的Post模型代码,发现class meta:应该写成class Meta:(首字母M要大写),不然Django不会识别这个元配置,你的ordering和unique_together规则就不会生效哦,记得改过来~
内容的提问来源于stack exchange,提问作者Shoaib Khan
相关产品推荐
相关产品推荐

