Django 1.11 to 2.2
前言 因為 Django 1.11 在今年四月開始停止更新了,所以花了一天時間幫公司從 Django 1.11 升級到 2.2 於是想用這篇來記錄一下升級的過程 前置作業: 我在升級前找了很多資料跟別人升級的心得,主要參考以下幾篇 博客将 Django 1.11+ 升级到 Django 2.2+ 遇到的问题及规避方法 Django1和2的区别 Upgrading Django to a newer version 第一篇主要是別人實際更新上遇到個問題 第二篇是再講 Django 1.11 跟 Django 2.X 主要差別在哪 第三篇是官方文件 開始! python -Wa manage.py test 先用以下指令掃一下升級後現在的 code 可能會在哪裡報錯 python -Wa manage.py test TypeError: init() missing 1 required positional argument: ‘on_delete’ 用步驟一的指令掃完後,報了很多下面的錯誤 TypeError: init() missing 1 required positional argument: ‘on_delete’ 出現這個的原因是因為 Django 2.X 開始 ForeignKey 的 on_delete 參數變成必填欄位(1.11 預設值為 on_delete=models.CASCADE),所以我們得先手動將 on_delete=models.CASCADE 加上去 ...