• 汎用ビューの種類をざっくりと紹介【全部で16種類あります】

    この記事では、汎用ビューの種類について解説していきます。

    汎用ビューは、5カテゴリ、16種類あります

    汎用ビューは、上記の通り、全部で16種類と非常に多いのですが、5つのカテゴリに分けることができます。

    それぞれのカテゴリごとに、その内容についてみていきましょう。

    LIST

    まずは、リストカテゴリです。リストカテゴリに属する汎用ビューは1つだけです。

    ListView

    ListViewは、データのリストを表示したいときに使われます。

    object_list属性にモデルのデータがすべて入っていますので、これをfor文を使うことで順番に取り出すことができるようになります。

    Detail

    次は詳細カテゴリです。詳細カテゴリに属する汎用ビューも1つだけです。

    DetailView

    DetailViewはモデル(データベース)に入っている個別のデータを取り出すときに使われます。

    基本的には、個別のデータに紐づいているprimary keyをurlpattenで指定することによって取り出すデータを指定します。

    Edit

    次は編集カテゴリです。編集カテゴリに属する汎用ビューは4つあります。

    CreateView

    CreateViewは、データを新しく作るときに使われます。

    <form></form>タグでフォームを作ることで、送信ボタンを押すと簡単にデータを作成することができます。

    DeleteView

    DeleteViewは、データを削除するときに使われます。

    DetailViewと同じように、primary keyなどで対象とする投稿を取り出すと同時に、formタグを使うことでデータを削除することができるようになります。

    UpdateView

    UpdateViewはデータを更新するときに使われます。

    これもDetailViewと同じように、primary keyなどで対象とする投稿を取り出し、その投稿内容を変更した上でボタンを押すとデータが更新されるようにすることができます。

    FormView

    FormViewはモデルとは関連付けないで、お問い合わせフォームを設置する場合などに使われます。

    BASE

    次はBASEカテゴリです。BASEカテゴリに属する汎用ビューは3つあります。

    TemplateView

    TemplateViewはモデルと関連付けられず、データを扱わないhtmlファイルを作る時などに使われます。

    View

    他のViewの親のViewです。Viewで実装をする場面はほとんどありませんので、Viewは使わないと覚えておけばよいでしょう。

    RedirectView

    RedirectViewは、Getリクエストを受けたときに、そのgetリクエストについているパラーメーターを認識し、そのパラーメーターに応じて違うページにリダイレクトさせるときに使われます。

     DATES

    日付カテゴリは、7種類の汎用ビューがあります。と言っても、さらに3つに分類することができますので、分類をしたうえでそれぞれの中身についてみていきましょう。

    ArchiveIndexView

    日付順に(新しい順です)、データを順番に表示するときに使います。

    データはlatestに入っていますので、latestをfor文で回すことですべてのデータを取り出すことができます。

    DateDetailView

    DateDetailViewはDetailViewの個別のurlの設定に日付も加えたいときに使います。

    urlは年、月、日を認識認識することができます。

    Day,Month,Today,Week,Year ArchiveView

    これら5つのViewは、日や月などでデータを分類して表示をしたいときに使われます。

    データはListViewのときと同じく、object_listの中に入りますので、object_listをfor文で回すことで個別のデータを取り出すことができます。

    ~Django無料講義~のご案内

    Code for Djangoが、4時間超の無料Django講義をはじめました

    •  ・本を出版したCode for Djangoの
       製作者が作ったサイトです。
    •  ・Code for Djangoの内容も、
       動画で詳しく解説しています。
    •  ・動画は順次ふやしていきますので、
       ただで学び続けることが可能です。
    •  ・Djangoの効率的なスキルアップに、
       是非お役立て下さい。