nikkie-ftnextの日記

イベントレポートや読書メモを発信

akiyokoさんの『現場で使える Django 管理サイトのつくり方』、Django Adminの仕組みやカスタマイズ方法に目から鱗の1冊でした #技術書典

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
技術書典9が開催中ですね!(9/22(火) 4連休最終日まで)

現場で使えるDjangoの教科書シリーズのakiyokoさんから、新刊『現場で使える Django 管理サイトのつくり方』を献本いただきました。 (ありがとうございます!)
読んだ感想をこのエントリにまとめます。

f:id:nikkie-ftnext:20200919090357j:plain

目次

『現場で使える Django 管理サイトのつくり方』とは

どんな本かはakiyokoさんのブログに詳しいです。

akiyokoさんのDjango本シリーズは毎回楽しみにしており、今回の新刊も購入予定でした。
上のエントリにあるように、まさしく「管理サイトの基本から応用に至るまでの幅広い知識が得られ、Django への理解がさらに深まる」本でした。

前提:nikkieのDjango

管理サイト2は「開発中のテストデータ投入」で主に使ってきました3
カスタマイズはできるらしい4けれど自分が使うことはあまりないだろうとすら思っていました。

読んで:落ちまくった鱗

Django Adminでできることの多さに驚きました。
「開発中のテストデータ投入」だけの利用は宝の持ち腐れでしたね。
例えば、管理サイトでパスワードリセットの機能を有効にしたり、一覧画面をダッシュボードのようにカスタマイズできたりすることを知りました(これは知ったことのごくごく一部です)。

通読して思ったことは、権限(Django Adminで操作できる範囲)を絞った上でカスタマイズすれば、特定のユーザがログインしたあとの画面としても使えそうということです。

例えば、Django Girls Blogは、はてなブログのような登録してブログを書けるWebアプリを目指していると思います。
これを実現する方法の中には、Django Adminを使うという方法もあるのでは?と思いました(経験不足のために筋が悪かったらお知らせください)。
記事を閲覧するにはユーザ登録不要です(Tutorialの実装のままになると思います)。
記事を執筆するユーザには、Postだけを操作できる権限を割り当ててDjango Adminにログインさせます(ログインや執筆機能を一から実装せずに済みます)。

同様に、プロポーザルレビューアプリもレビュアー権限のユーザをDjango Adminにログインさせていたら、一から作るより手短に済んだかもしれません。
プロポーザル投稿には一般ユーザとしてログインを必要とします(Django Girls Blogのような感じで実装する想定です)。
レビューフェーズになったら、特定のユーザにレビュアー権限を割り当てて、カスタマイズしたDjango Adminでレビュー機能を提供します。

まとめると、一部のユーザだけが可能なデータ操作は、カスタマイズしたDjango Adminの利用で実装量を減らせそうという感触を得ました。

また、これまでのシリーズ同様にコラムも充実しています。
便利なパッケージの紹介などなど、コラムからの学びも多々ありました。

Djangoは独学の身(実務では使用経験なし)からすると、akiyokoさんのコードが見られるのも学びが大きいです。
「そんなところに便利なモジュールがあるのか」「テストコードはこんな風に書くのか」などなど、akiyokoさんとペアプロしているような感覚を味わいました。

終わりに

Django Admin、何も知らなかったことを痛感する一冊でした。
仕組みやカスタマイズ方法を知った今、Django Adminで手を動かして、知ったことを知識に変えたい想いに満ちています。
カスタマイズして、Django Girls Blogの記事の一覧画面や編集画面を作ってみるというのは、素振りによさそうですね。
Django Adminのカスタマイズでできることを掴めば、それを使わない場合の実装にも活きてきそうな気がします(クラスの継承を使って設定している部分など)。

今回はインデックス作りとしてざっくり読みましたが、この本はDjango Adminを使った開発の辞書としても使えそうです。
(画面遷移図やクラス変数、メソッド一覧など、akiyokoさんのエントリの紙面サンプルを参照ください)

Djangoチュートリアルをなにか1つ終えていれば、この本から多くを得られると思います。
Django Adminを使いこなし/使い倒したい方はよろしければチェックしてみてください!

P.S. 現場で使えるDjangoの教科書も読み返したら目から鱗でした

ふと基礎編の教科書を読み返し始めたところ、「レビューアプリではこうやればもっとうまくやれていたのか!」と発見ばかりでした。
特に基礎編のビューの章、クラスベースドビューの使い方の指針はなるほどと思いました。

実は教科書は困ったときのインデックスとして使っていて、通読は後回しでした。
Djangoアプリを1つ作り上げた今、akiyokoさんの本を通読して吸収できることは非常に多くありそうです(特にコードまわり)。
なので、現場で使えるDjangoの教科書シリーズは、Djangoについて知り、手を動かした後に読み返して知識を深めるという長く付き合える本なんだと実感しました。

技術書典4から継続してDjangoについて質の高い情報をアウトプットしているakiyokoさんには感服です。
最近はDjangoの入門本が増えてきた印象ですが、akiyokoさんのDjangoの教科書シリーズは現場で使える知識が詰まっていて、私のDjango開発を引き続き支える相棒のような存在になりそうです。


  1. 先日のPyCon JP 2020で共有しています:https://pycon.jp/2020/timetable/?id=203919

  2. 私はTutorialの言葉でDjango Adminと呼ぶことが多いです

  3. 良くも悪くも以下を頑なに守ってきました:ログインページを作ろう(Django admin) · HonKit

  4. たしかモグモグDjangoDjango Admin Cookbook — Django Admin Cookbook 2.0 documentation を知りました