Django项目报错AttributeError: 'Type' object has no attribute '_state'求助
解决Django Admin中Category模型的AttributeError问题
看起来你遇到的这个错误根源很清晰——从报错信息里的'Type' object has no attribute '_state'可以推断,你在admin后台注册模型的时候误操作了,把Python内置的Type类型当成了你自己的Category模型来注册,导致Django无法正确识别模型实例。
问题分析
你的模型是Category,但错误里提到的是Type对象,这说明:
- 你在
blog/admin.py里可能导入错了模型,或者注册时写错了模型名称 - Django尝试把非Django模型的
Type类当作模型处理,而它没有Django模型必备的_state属性,因此触发了这个500错误
修复步骤
检查并修正admin注册代码
打开你的blog/admin.py文件,确保代码是这样的:from django.contrib import admin from .models import Category # 确认导入的是你的Category模型 admin.site.register(Category) # 注册的是Category,不是Type如果你之前写成了
from .models import Type或者admin.site.register(Type),那就是问题所在——因为Type不是你定义的模型,而是Python的内置类型。访问正确的Admin URL
你的Category模型在Meta类里设置了verbose_name = 'category',所以正常的添加页面URL应该是:/admin/blog/category/add/你之前访问的
/admin/blog/type/add/是错误的路径,修正后就能正常访问了。确保模型已正确迁移
最后别忘了运行迁移命令,确保数据库里有Category对应的表:python manage.py makemigrations python manage.py migrate
为什么会出现这个错误?
Django的模型实例都会有一个_state属性,用来跟踪实例的数据库状态(比如是否已保存、使用哪个数据库连接等)。而你注册的Type是Python的内置类型,根本不是Django的Model子类,自然没有这个属性,所以当Django尝试处理它时就会抛出AttributeError。
内容的提问来源于stack exchange,提问作者martin amakobe
相关产品推荐
相关产品推荐

