Django開発~ブログ構築編2~投稿フォーム

django

学習記録

Django開発 ~ブログ構築編1~の続きです。

投稿フォームの実装

ブログの投稿フォームを実装しようと思います。

django では、慣習的に「forms.py」にフォームを実装することになっています。デフォルトでは作成されないので、まずはforms.pyを作成してみましょう。

続いて、このフォームの中身を書いていきます。

「class Meta」 には、紐づけたいDjangoモデルを指定できるので、前回作成した「Postモデル」に紐づける設定を行いました。これでこのformは、Postモデルに関連するフォームになるわけです。

「fields」には、フォームの入力フィールドを設定できます。今回は、タイトル、ボディ、ステータス、投稿者の4つを指定しておきます。

投稿Viewの作成

投稿Viewを作成してみましょう。

前回定義したView(post_list, post_detail)とは違って、今回追加したViewは、Djangoのクラスベース汎用ビューという機能を継承して作成しています。

URLの追加

新しいViewを追加したので、urls.pyに登録します。

form テンプレートの作成

tempaltes/blog/post 配下に form.html を作成しましょう。

HTMLを記載します。

list.htmlに投稿ボタンを設置しましょう。

ここまで作業を終えたら一旦、「localhost:8000/blog」にアクセスして、画面を確認してみましょう。

Postを押下
投稿フォーム
投稿反映の確認

デザインはともかく、だんだんブログっぽくなってきましたね。スタイル(CSS)は、後で直しましょう^^

投稿の更新

投稿した内容を更新できるようにしましょう。

urls.py も編集します。

list.html にリンクを追加してみましょう。

ついでに詳細画面に遷移した後、トップページに戻るボタンを追加しましょう。

Updateボタンを押下
データを更新
データの更新を確認

更新画面は問題なさそうですね。よりブログらしくなりました。

投稿の削除

最後に投稿を削除できるようにしましょう。

まずは、views.pyを編集します。

続いて、urls.py を編集します。

DeleteViewクラスを継承したViewを実装すると削除確認フォームを作成する必要があります。

中身を描いてみましょう。

続いて、list.htmlを編集します。

これで削除機能は完了です。動作確認をしてみましょう。

Deleteボタンを押下
確認フォームのDELETEボタンを押下
データの削除を確認

おわりに

だんだんとブログに近づいてきました。

次は、ブログにスタイル(BootStrap,CSS)を追加しましょう^^

コメントを残す