見出し画像

Django4の説明10:カテゴリ別ページの作成


0.前提

カテゴリー別に表示をしてみましょう。

  1. カテゴリ一覧のリンクの作成

  2. カテゴリ一覧のURLパターンの登録

  3. カテゴリ一覧ビューの作成

  4. 確認

  5. まとめ

1.カテゴリ一覧のリンクの作成

/code/photo/templates/photos_list.html 編集画面

※urlにカテゴリIDが付与されています

2.カテゴリ一覧のURLパターンの登録

/code/photo/urls.py 編集画面

書式を覚えましょう。
基本的なことを覚えると応用ができます。

3.カテゴリ一覧ビューの作成

/code/photo/views.py
以下はコードの概要です。

  1. ライブラリのインポート:

    • Djangoの様々な機能を使うための必要なライブラリやモジュールをインポートしています。

  2. ビューの定義:

    • IndexView: 前回までに説明済みのため、省略

    • CreatePhotoView: 前回までに説明済みのため、省略

    • PostSuccessView: 前回までに説明済みのため、省略

    • CategoryView: 特定のカテゴリに関連する投稿を表示するためのListView。カテゴリIDに基づいて投稿をフィルタリングし、ページネーションして表示します。

  3. 各ビューの属性やメソッド:

    • template_name: 各ビューで利用するテンプレートファイルを指定しています。

    • get_queryset(): CategoryViewでオーバーライドされたメソッド。
      特定のカテゴリに関連する投稿を取得するために、カテゴリIDを元にPhotoPostモデルから投稿をフィルタリングしています。

    • form_valid(): CreatePhotoViewでオーバーライドされたメソッド。フォームのバリデーションが通過した後、投稿データをデータベースに保存するために使用されます。

  4. デコレーター:

    • @method_decorator(login_required, name='dispatch'): CreatePhotoViewに対してログインが必要であることを示すデコレーター。login_requiredを適用し、未ログインの場合はログインページにリダイレクトします。

これらのビューは、特定の機能を持ち、それぞれが異なるテンプレートを利用して特定の情報をユーザーに提示する役割を果たします。 Djangoでは、ビューが特定のURLに割り当てられ、ユーザーが特定の操作を実行するとそのビューが呼び出されるようになります。

※パラメータの受け取り方法が重要です。
手順をよく覚えましょう。

4.確認

画面遷移でテスト結果

5.まとめ

※重要なポイント

/code/photo/views.py 編集画面

次回はカテゴリ別と似た方法でユーザ別一覧を表示します。


この記事が気に入ったらサポートをしてみませんか?