3_Django REST framework応用 ~管理画面のカスタム~

Django REST framework
とんぺい
とんぺい

師匠〜、おはようございます!今日もDRF(Django Rest Framework)の応用編を勉強しに来たブゥ!

師匠
師匠

とんぺいくん、おはよう。前回は、テスト駆動開発(TDD)という開発手法を学習し、User modelを作成したね。今回は、管理画面のカスタムを行っていくよ。

とんぺい
とんぺい

承知しました!

今回もよろしくお願いしますだブゥ!

注意

  • ソースコードの中に「[」という文字列がありますが” [ “が文字化けしたものです。
  • 同じく「&&」とありますがこちらは「&&」となります。
  • 修正法が判明次第修正します。

ソースコード

管理画面用のテストコードを追加

師匠
師匠

テスト駆動開発は、テストコードを書くところから始まったね。core/tests/test_admin.pyを作成して、その中にテストコードを記述しよう。

とんぺい
とんぺい

実装が完了したブゥよ!

テストコードの実装が完了したら、次はテストの実行で合ってるブゥね?

師匠
師匠

その通り。とんぺいくんもテスト駆動開発のプロセスにだいぶ慣れてきたね。dockerを立ち上げてから、以下のコマンドをterminalに入力してテストを実行しよう。

とんぺい
とんぺい

ぶぶぅ!Reverse for 'core_user_changelist' not found.というエラーが出てるブゥ!今からこのエラーが出ないように機能の実装をしていくんだブゥね!

Custom UserAdminクラスの作成

師匠
師匠

とんぺいくんの言う通り、前回のテストで検出されたエラーを今から修正していくよ。admin.pyにソースコードを記述して、管理画面にCustom Userを表示できるようにしよう。

とんぺい
とんぺい

BaseUserAdminを継承したUserAdminクラスを作成することで、管理画面に出力されるUser modelの情報を変更できるんだブゥね! 早速テストを実行するブゥ!

師匠
師匠

どうやら管理画面でユーザを表示するテストはうまくいったようだね。では、次は管理画面でユーザの追加・編集が正しく表示されるかを確認するためのテストを作成していこう。

ユーザ編集のテストコードを追加

師匠
師匠

では、test_admin.pyに戻って管理画面でユーザの編集画面が正しく表示されるかを確認するためのテストコードを作成し、テストを実行してみよう。

とんぺい
とんぺい

よくわかんないフィールドがあるから、UserAdminクラスを確認しろと怒られたブゥ!さっきのadmin.pyを編集すれば良いブゥか?

師匠
師匠

そうだね。admin.pyに戻ってUserAdminクラスを以下のように修正し、再度テストを行おう。

とんぺい
とんぺい

おっ!いい感じにうまくいったブゥ!!

師匠
師匠

無事にテストが成功したようだね。では、次にユーザ追加画面が正しく表示されるかテストを行おう。test_admin.pyを以下のように編集してテストを実行しよう。

とんぺい
とんぺい

予想通りエラーが出てきたブゥ!これもエラー内容を見るとUserAdminクラスを修正しろと書いてあるブゥね!

師匠
師匠

出力されたエラー文に書いてある通りに、もう一度admin.pyUserAdminクラスを修正し、テストを行おう。

とんぺい
とんぺい

無事にテストが成功して嬉しいブゥ!

師匠
師匠

無事にテストが完了して良かった。

では、最後に本日のまとめに入ろう。

まとめ

師匠
師匠

本日は以下の点について学習したね。

  • 管理画面のカスタマイズ方法
  • Client()を用いたテスト
  • get_user_model()とは
とんぺい
とんぺい

うん!今日も新しいことをたくさん学べて楽しかったブゥ!

また次回もよろしくお願いします!

師匠
師匠

本日はお疲れさま。

次回はデータベースのセットアップを行っていこう。

とんぺい
とんぺい

それは楽しみすぎるブゥ〜

本日はありがとうございました!それではまた次回だブゥ!

参考

コメント

  1. […] とんぺいくん、こんにちは。前回は、管理画面のカスタマイズを行ったね。今回は「PostgreSQL」をアプリケーションのデータベースとして用いるための設定を行っていくよ。 […]

タイトルとURLをコピーしました