資料庫中的一對多如何在 django實現呢
先在app models.py 創建ClassRoom
執行遷移,像之前一樣在終端輸入
python manage.py makemigrations
python manage.py migrate
創建幾筆ClassRoom資料
修改原本的Student
執行遷移,像之前一樣在終端輸入
python manage.py makemigrations
python manage.py migrate
可能會想說為什麼這麼麻煩,因為我不想改之前在Student的資料,所以只好直接讓外鍵預設值為ClassROOM的第一筆資料
不過最好還是在一開始就先想好怎麼設計資料庫,不要突然讓它突然多外鍵這種
有的時候遇到資料庫這邊的問題可以去刪除app/migrations中的檔案,除了0001_initial.py和__init__.py
對了有這個__init__.py代表它是一個包
回到主題可以看到 Student裡的ClassRooM屬性值,都變成了ClassRoom object (1)
這個object 不是我們想要看到的
像上一張的方法
修改app 中的models.py
修改app 中的 admin.py
發現一樣在Student裡的ClassROOM屬性值,一樣是ClassRoom object (1)
這時要修改的地方其實是覆寫__str__方法 (藍色往上箭頭代表覆寫,在pycharm)
這樣資料庫那邊就可以看到ClassRoom的name
修改這邊也可以直接看到值,不在是object,是不是很方便呢
這篇完整程式
models.py
admin.py