Django DetailViewで詳細画面を作成

2019年11月16日

クラスベースビューであるDetailView(詳細のビュー)を利用して、詳細画面を作成してみます。

 

DetailViewは「オブジェクトの詳細ページを表示する」機能を持つクラスです。オブジェクトとはモデルによるデータであり、本記事では下記のMemberモデルを利用して詳細画面を構築していきます。なおアプリケーションの名前はuserで作成しています。

 

user/models.py

主キーを指定しない場合、Djangoによってidカラム(integer型/PRIMARY KEY)が自動的に付加されることを認識しておいて下さい。

 

 

本記事では、下記のイラストのような画面遷移を構築しています。一覧画面の詳細リンクをクリックすると、詳細画面へと遷移します。

 

 

なおListViewの機能については下記ページをご覧下さい。

 

ListViewでモデルの一覧表示

 

 

以下コードと説明です。

 

user/views.py

11行目

template_nameに利用するテンプレートを指定しています。デフォルトでは「アプリ名/モデル名_detail.html」が設定されているので、下記で記述している階層において「member_detail.html」テンプレートを作成していれば、特に記述する必要はありません。

 

 

user/urls.py

6行目

<int:pk>は、URLに「user/1/」のようにアクセスする場合の記述で、intは整数値での指定を表します。pkはDjangoに備わった照合形式で、主キー(PRIMARY KEY)を表します

 

 

user/templates/user/member_list.html

19行目

「detail」は、urls.pyのpathの第3引数のnameで指定した名前です。member.pkのpkは上述したようにモデルの主キーを表し、本記事では自動的に生成されたidカラムのことを指すようになります。つまりidの整数値によってデータベースに対して照合されるようになります。

 

 

user/templates/user/member_detail.html

 

 

 

参照ページ


 

django ドキュメント

Generic display ビュー Detail Views

 

はじめての Django アプリ作成、その 4

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー