使用 Django 管理面板时,我可以向用户和组添加新实例。我所有的应用程序都一样,除了一个。每当我尝试添加新模型时,resultregistration 这个应用程序总是给我一个 ProgrammingError。例如,此应用程序有一个竞赛模型,其中应存储有关体育比赛的数据。
当我点击“+ 添加”时,我被带到了可以添加新比赛的正确站点。但是,当我按下保存时,我得到:
/admin/resultregistration/competition/add/处的编程错误
关系“resultregistration_competition”的列“competition_category”不存在 第 1 行:插入“resultregistration_competition”(“competition_c ...
当然,我假设迁移有问题。但是,我已经运行了 python manage.py makemigrations appname 和 python manage.py migrate appname,并且运行良好。我收到一条消息,指出“未检测到任何更改”和“没有要应用的迁移”。
我已经尝试过发布在 SO 上的解决方案,但没有一个有效。
此错误的一般原因是什么?有谁知道在这种特定情况下可能出了什么问题?如果模型中定义错误,是否会出现此错误?还是一定是迁移问题?
非常感谢!任何帮助将不胜感激。另外,如果有帮助的话,我正在使用 PostgreSQL。
最佳答案
- 确保您在该特定应用程序的迁移文件夹下有 _ init _.py 文件。
- 如果您的 models.py 中有任何更改,运行 manage.py makemigrations 总是会生成一个迁移文件
如果没有任何效果并且您的数据库中没有太多数据,最终解决方案是删除该应用程序或项目的所有迁移文件(如果有),在终端中输入“sudo -su postgres”,然后输入“psql” .
删除您的数据库并创建一个新数据库。运行 manage.py makemigrations 检查迁移文件是否已经创建。然后用 manage.py migrate 迁移
关于python - 向数据库添加新模型实例时 Django 中的 ProgrammingError,可能出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46828251/