使用Django管理面板時,我可以將新實例添加到用戶和組。同樣的事情適用於我的所有應用程序,除了一個。這個應用程序,resultregistration,每當我嘗試添加新模型時,都會給我一個ProgrammingError。例如,這個應用程序有一個競爭模型,其中應存儲關於運動競賽的數據。在向數據庫添加新模型實例時,Django中的ProgrammingError有什麼問題?
當我點擊「+添加」我被帶到正確的網站,我可以添加一個新的競爭。然而,當我按保存我得到:
ProgrammingError在/管理/ resultregistration /競爭/添加/
列關係的 「competition_category」 「resultregistration_competition」 不存在 LINE 1:INSERT INTO 「resultregistration_competition」( 「competition_c ...
當然,我認爲遷移有些問題,但是我已經運行了python manage.py makemigrations appname和python manage.py migrate appname,並且工作正常。有「沒有檢測到變化」和「沒有遷移應用」
我已經嘗試過在SO上發佈的解決方案,但他們都沒有工作。
這個錯誤的一般原因是什麼?有沒有人知道在這個特定情況下可能會出現什麼錯誤?如果在模型中定義了錯誤,會不會得到這個錯誤?還是必須是遷移問題?
非常感謝!任何幫助將被真正讚賞。此外,我使用PostgreSQL,如果有幫助。
如果沒有訪問應用的代碼和修訂歷史記錄,就無法回答。您的模型是由ORM管理還是遺留表格?何時創建此「competition_category」列並且是否存在匹配遷移? (提示:閱讀你的應用程序的遷移,並檢查'django_migrations'表來找出哪些應用程序和什麼時候)。 –
遷移有問題。檢查你的數據庫看看'competition_category'列是否真的存在。我建議你逐一回滾遷移並重新應用它們以找出發生此問題的位置。 – anupsabraham