DjangoのadminサイトでFKの名前が<テーブル名> object ()となってしまう
こんにちは!Nineeenという学生開発チームの代表をしている古谷洸樹です。
Nineteenでは飲食店で使えるシフト作成アプリを開発しています。
今日はDjangoでデータベースのモデルを作成した際にadminサイトのFKの部分が<テーブル名> object (1)となってしまったのでその解決方法について記事にしていこうと思います。
多分、なんのことを言っているのかわかりにくいと思うので実際の画面を見て頂きます。
私たちはStoreテーブルとGroupテーブルを1対多の関係でつないでいます。なのでGroupテーブルにはStore FKを付けているのですが、いざデータを入れてもどのストアがStore FKでつながっているのかが分かりません。
さっそくDjangoの公式サイトで調べてみました。
この解決策はここにありました。
ここには<Question: Question object (1)>という表示では全く役に立たないのでQuestionモデルを編集し、__str__()メソッドをQuestionモデルとChoiceモデルに追加しようと書いてあります。
それでは早速やってみましょう。私たちのテーブルに置き換えるとStoreテーブルとGroupテーブルに__str__()メソッドを追加すればいいという事です。
それでは早速マイグレートして確認してみましょう。
docker-compose run web python3 manage.py makemigration shiftan
docker-compose run web python3 manage.py migrate
私たちはDockerを使っているので少しコードが違うかもしれません。
成功です!これでわかりやすくなりました。
ここまで読んでいただきありがとうございます。このNoteは自分の備忘録として書いていますが、このNoteが同じ悩みを持った他の人の力になれれば嬉しいです。もしよければスキやコメントよろしくお願いします!
参考資料
この記事が気に入ったらサポートをしてみませんか?