Django UpdateViewで編集(更新)画面を作成

2019年11月19日

クラスベースビューであるUpdateView(編集するためのビュー)を利用して、編集画面を作成してみます。

 

下記関連ページでは新規作成画面を作成しましたが、本記事では引き続き編集画面を作成します。

 

関連ページ

CreateViewで新規作成画面を作成

 

UpdateViewはオブジェクトの編集画面の描画およびバリデーションエラー表示の機能を持つクラスです。オブジェクトとはモデルのデータであり、本記事では下記のMemberモデルを利用しています。アプリケーション名はuserで構築しています。

 

user/models.py

 

 

以下コードと説明です。

 

user/views.py

「編集するためのビュー」であるCreateViewとほぼ同じ記述です。登録完了すると詳細画面へ遷移するようにしています。

 

25行目

template_nameに利用するテンプレートを指定しています。デフォルトではCreateViewでのテンプレートと同じ「アプリ名/モデル名_form.html」が設定されているので、本記事では別のテンプレートを用意しておきました。

 

 

user/urls.py

8行目

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

 

 

user/templates/user/member_update_form.html

 

user/templates/user/member_list.html

21行目

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

 

member_list.html の表示画面

 

関連ページ

DeleteViewで削除確認画面を作成

 

 

参照ページ


 

django ドキュメント

Generic editing ビュー UpdateView

 

 

 

LINEで送る
Pocket

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