Django開発~ブログ構築編8~レビュー機能

django

学習記録

Django開発~ブログ構築編7~検索フォームの続きです。

本日は、ブログにレビュー機能をつけていきたいと思います。

Reviewモデルの追加

まずは、Reviewモデルをmodels.pyに追加しましょう。

このReviewは、Postモデルに対して、一対多で結びつくようにしました。

モデルを設定したので、マイグレーションを実行しましょう。

管理画面に追加

モデルを作成したら管理画面にも追加しておきましょう。

Form作成

続いては、Reviewフォームを作成しましょう。

Review登録機能

views.pyにReviewの登録機能を実装します。

この機能は、投稿詳細画面に追加したいので、post_detail関数を修正しましょう。

まず、「ReviewForm()」にて、フォームをインスタンス化しました。このインスタンスをdetail.html側で受け取り、フォームとして表示させます。

次に、「post.view.all()」にて、Postオブジェクトに紐づくReviewオブジェクトを取得します。投稿詳細画面にレビューを表示させる予定だからです。

最後にPOSTリクエスト時に、Reviewの内容をデータベースに登録する処理を行っています。

登録する際は、「commit=False」を指定したフォームオブジェクトを作成し、必要なプロパティを追加後に正式に「save()」で保存します。commmit=Falseを指定したオブジェクトを作成しておかないとデータの保存ができません。

投稿詳細画面の修正

投稿詳細画面に、Reviewフォームとレビュー一覧を追加します。

動作確認

ブログ一覧からアクセスし、動作を確認してみましょう。「localhost:8000/blog」から投稿一覧を開き、そこから詳細画面に移動しましょう。

「REVIEW FORM」にメッセージを入力して「POST」ボタンを押下して下さい。

画像キャプチャのようにレビューが追加されたら成功です!

おわりに

Blogの実装に関しては、一通りの機能を作れたと思いますので、今回で最終回といたします^^

他にも色々な機能を作ることができると思いますので、ぜひ挑戦してみてください。(個人的には、デザインがダサいのでその辺を修正いただけると…)

長らくありがとうございました。

コメントを残す