保存对象后Django出现OperationalError:找不到product_product表
嘿,这个问题我之前开发Django项目时也踩过坑!本质原因很明确:你定义了product模型,但数据库里还没生成对应的product_product表(Django默认的表命名规则是「应用名_模型名小写」),导致保存数据时找不到表。
下面是一步步的解决步骤:
第一步:确认应用已注册到项目
打开项目根目录的settings.py,检查INSTALLED_APPS列表里是否包含你的product应用。根据你的apps.py配置,应该添加'product.apps.ProductConfig'或者直接'product',确保这一行存在,否则Django不会处理该应用的模型迁移。第二步:生成迁移文件
打开终端,切换到项目根目录(就是有manage.py的那个文件夹),执行以下命令:python manage.py makemigrations product这个命令会根据你
models.py里的product模型,生成对应的数据库迁移脚本文件,存放在product/migrations/目录下。第三步:执行迁移创建表
接着执行迁移命令,把脚本应用到数据库,创建实际的表:python manage.py migrate product如果需要迁移所有已注册应用的模型,直接运行
python manage.py migrate即可。额外提示:规范模型命名
虽然不影响功能,但按照Python的PEP8规范,类名应该采用大驼峰写法,建议把class product(models.Model)改成class Product(models.Model),这样代码可读性更高,也符合社区约定。
做完这些步骤后,再回到Django Admin尝试保存对象,应该就不会再出现这个错误啦!
内容的提问来源于stack exchange,提问作者Jens

