Django管理画面は業務で使用できる??
Django標準で用意されている管理画面は業務で使用できるか?を整理してみた記事です。
「管理画面ではどの程度カスタマイズできるのか?」
「実際にアンケートサイトを例に管理画面を使用してみて使い勝手はどうだったか?」
などを見ていきます。
1.Django管理画面の仕様のおさらい
1-1.管理画面ではmodelデータの参照、編集ができる
Djangoの管理画面の機能について簡単に説明すると、自分で作成したmodel(DB)のレコードを参照できたり編集できたりします。
1-2.カスタマイズしないとリストでデータが確認できない
管理画面をカスタマイズしないと、中央のメインエリアのリストではデータが表示されず、データの確認がしづらいです。
この場合データの確認をする場合は、1件ずつ詳細ページに遷移して確認する必要があるので効率が悪いですね。
(以下Blog modelを例にすると、複数レコードが登録されているがリストにデータが表示されない)
1-3.カスタマイズするとリストでデータを表示させることができる
カスタマイズすると、
・右側のmodel名をカスタマイズできる
・メインエリアでリストでデータを表示させることができる
リストでデータを表示することができれば、データの確認がしやすくなるので、使い勝手はかなり向上するかと思います。
2.アンケートサイトを例に管理画面を使ってみる
それではアンケートサイトを例に管理画面はどのように使えるかをみていきます。
以下赤枠の箇所を管理画面で使用していくイメージとなります。
2-1.アンケートサイトで使用するmodelイメージ
まずはアンケートサイトで使用するmodelを用意します。
アンケートマスタや質問マスタを設定するとアンケート画面が表示できる仕様です。入力フォームはテキストフィールド、テキストエリア、ラジオボタン、チェックボックスに対応させます。
2-2.実際のアンケート画面イメージ
管理画面ではありませんが、アンケート画面の完成系は以下のようなイメージです。bootstrapでそれっぽく作ってみました。
3.管理画面でのマスタデータ登録、確認について
それでは実際の管理画面をみていきます。アンケートサイトのマスタデータを例にあげつつ、管理画面ではどのようなカスタマイズができるかを併せてみていきます。
3-1.アンケートマスタ
まずはアンケートのタイトルやアンケートに関する説明文を設定していきます。
リストにデータを表示させる際にはどのカラムを表示するかをカスタマイズできます。また「タイトル」や「説明文」などのカラム名もカスタマイズすることができます。
3-2.質問マスタ
次にアンケートに表示する質問を登録していきます。
入力フォームのタイプをINPUTタイプから選択し、ラジオボタン、チェックボックスの場合は、複数の選択肢を表示させるために別途、選択肢マスタも登録していきます。(後述)
3-3.選択肢マスタ
質問マスタのINPUTタイプでラジオボタン、チェックボックスを選択した場合は、選択肢マスタで選択肢を設定していきます。
質問マスタの質問文をリストに表示させた方が確認しやすいため、リストに表示させるようにしました。
自分のmodelのカラムのみだけでなく、リレーションテーブルのカラムも表示することができます。
また管理画面にはフィルター機能もあるため、質問ごとに絞り込めるようにし、質問に紐つく選択肢のみを表示させるようにしました。
3-4.アンケート質問設定マスタ
アンケートにどの質問を表示させるかを紐付けたら、完成です!
ここもアンケートのタイトルと、質問文をリストに表示させることによって、どの質問文が紐ついているかがわかりやすくなるので、そのように設定しました。
またアンケートごとにどの質問が紐ついているかを確認しやすくするために、アンケートごとにフィルターをかけれるようにしました。
3-5.回答データ
ユーザーが画面からアンケート回答すると回答データテーブルに登録されます。
「回答」カラムは、テキストフィールド、テキストエリアの回答内容のみを保持する想定でしたが、ラジオボタン、チェックボックスパターンでも、ここのリストで確認できるように選択肢の回答内容を保存するようにしました。(複数選択された場合は、カンマ区切りで保存)
3-6.選択肢回答データ
ラジオボタン、チェックボックスパターンの質問に回答すると選択肢ごとの回答を登録します。上記回答データ側のリストでラジオボタン、チェックボックスパターンも表示するようにしたので、管理画面から選択肢回答データの参照は使用しなそうです。
4.まとめ
最後まで読んで頂きありがとうございます!
標準機能として、modelへの参照や更新ができるのはありがたいですね!
ただし使用する場合は、modelのデータ確認をしやすくするため、ある程度カスタマイズは必要だと思いました。
また単純にmodelにデータを登録するだけの機能ですので、マスタデータの設定手順は、用意しておく必要があるかなと思います。なので外部公開用と言うより、内部の運用者向けとしては利用できるシーンが一定あるのかなと思いました。
おまけ
当記事の画面フローやテーブルレイアウトはFigmaのFigjamで作成しました。
簡単に作成できますので興味がある方は以下も見て頂けると嬉しいです!
この記事が気に入ったらサポートをしてみませんか?