使用Django Admin面板时,我可以向用户和组添加新实例。我的所有应用程序都是一样的,除了一个。每当我尝试添加新模型时,这个应用程序结果注册总是给我一个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,如果这有帮助。
答案 0 :(得分:3)
如果没有任何作用且数据库中没有太多数据,最终解决方案是删除该应用程序或项目的所有迁移文件(如果有),在终端类型" sudo -su postgres"然后输入" psql"。
删除数据库并创建一个新数据库。运行manage.py makemigrations以检查是否已创建迁移文件。然后使用manage.py migrate
进行迁移