フォームを表示するだけでしたら、これでOKです。モデルやフォームが変更されても、テンプレートでは自動的に変更が反映されます。%}ドキュメントが詳しいです。documentationPOSTするフォームにはつけておきましょう。tableで表示したいきれいに入力欄を表示するため、<table>タグを使用することもあるかもしれません。表示さて、フォームを表示するための準備は全て整いましたので、runserverして、フォームにアクセスしてみましょう。テーブルで表示しています。冬の寒空のようなページが表示されたと思います。成功時にリダイレクトするURLは存在しないのでエラーになります。一覧ページを表示したいと思います。余談:リストビューFormと直接関係ないので余談にしてみました。トップページにリスト表示させるだけです。コードだけ載せていきます。%}トップページにアクセスすると、現在保存されているPersonがリスト表示なっていると思います。動作チェックできそうですね。UpdateViewCreateViewでは基本的なFormの動作を見ていきました。次はUpdateViewでもう少し詳しく見ていきたいと思います。UpdateViewはお察しの通り、既存のデータを更新するためのものです。削除は別にDeleteViewがあるので、削除はできません。いつもの通り、views.pyに書いていきたいと思います。"list.html"次に、urls.pyでURLに紐つけます。今回から、urls.pyのurl関数にname="hogehoge"を追加しました。urlにつける名前です。テンプレートで使おうと思っています。admin.site.urls),]今回追加した部分はこれだけです。トップページのリストから、ダイレクトにUpdateViewにアクセスできるように修正してみます。urlの動的生成url関数はリンクを生成する関数です。name="update"),先程、name="update"と追記しました。updateという名前を使って、urlを生成することができるようになります。urls.pyで指定した名前です。person.idはこの場合PersonオブジェクトのIDですので、DB上のプライマリーキーです。すると、"update"というURLにつけた名前からupdate/が導かれ、person.idからプライマリーキーがわかるので、それらを合成してupdate/3のようなURLを生成します。Viewの動作UpdateViewは与えられたURLから、自動的にDBに保存してあるデータをロードし、テンプレートに渡します。name="update"),の<pk>がポイントです。これで、準備はできましたので、トップページのリストから名前をクリックしてアクセスしてみましょう。名前、年齢を変更して実際に変更されるか確認してみてください。バリデーションこの2つのフォームはバリデーション機能があります。言うのは嘘で、バリデーション自体はモデルにあるのですが、バリデーションをviews内で実行しています。バリデーションの実行は自動で実行されますが、その結果がvalidであればform_validメソッドが呼ばれ、invalidであればform_invalidメソッドが呼ばれます。バリデーションが通ったときとそうでないときで処理を分岐することができます。具体的にはメソッドをオーバーライドします。汎用ビューの機能を実行するため、スーパークラスのメソッドも呼び出します。something部分に自分の処理を差し込みます。次のページに「保存しました」などの通知を送ったり、メールを送信したり、slackに通知したりです。フォームからのデータでゴニョゴニョしたいときは、仮引数のformを使います。私は成功・失敗をメッセージフレームワークで通知するぐらいしか使っていません。逆に、デフォルトでは成功失敗を通知しないので、通知したいときはオーバーライド必須です。django-bracesというモジュールを使うと、その辺の処理なしにメッセージを追加できます。必須モジュールだと思います。まとめこのようにDjangoにはフォーム周りも結構便利に使えるようになっています。建設業の事務員やってますが、ウェブ業界に転職したいなぁ。upLoginユーザーは見つかりませんでした。