Djangoのアプリ管理画面でユーザのフルネームを表示させる

フレームワークって、決まったことをやる分にはめちゃくちゃ速く開発出来ちゃうけど、ほんのちょっとここをこうしたいって時に、仕様が理解できてないと、ものすごい時間と労力を取られることがある、、。

Djangoで作成したアプリのモデルを定義すると、管理画面上に自動的にレジスターが出てくるので非常に便利。

でもそのレジスターを一覧表示した時、外部キー(foreignkey)で紐づけたユーザ情報が、デフォルトだとユーザ名(ログインID)になってしまう。

せっかくカスタムユーザモデルを定義したのだから、ここにフルネームを出したい。

カスタムユーザモデルを修正。

マイグレーション忘れずに。

するとアプリのレジスター画面で 以下のように表示される。

とりあえずこれでOK。

ただしUSERNAME_FIELDはユーザのレジスターやアクティベーションに関係してくるので、外部向けの新規ユーザ登録画面などを作った時に、弊害が出てくる可能性も、、、。

もうちょっと勉強が必要かな。

6/13追記:

さっそく弊害出ました。フルネームがユーザ名として扱われるようになったため、管理画面にログインする際のIDもフルネームで判定されるようになってしまいました。元に戻しました、、、。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*