---
title: "ビルトインのクラスベースビュー API"
version: 1.11
locale: ja
source: https://docs.djangoproject.com/ja/1.11/ref/class-based-views/
canonical: https://djangodocs.dev/ja/1.11/ref/class-based-views/
---
# ビルトインのクラスベースビュー API

クラスベースビュー API のリファレンスです。前置きとして、トピックガイドの [Class-based views](/ja/1.11/topics/class-based-views/) をご覧ください。

- [Base views](/ja/1.11/ref/class-based-views/base/)

  - [`View`](/ja/1.11/ref/class-based-views/base/#view)
  - [`TemplateView`](/ja/1.11/ref/class-based-views/base/#templateview)
  - [`RedirectView`](/ja/1.11/ref/class-based-views/base/#redirectview)
- [Generic display ビュー](/ja/1.11/ref/class-based-views/generic-display/)

  - [Detail Views](/ja/1.11/ref/class-based-views/generic-display/#detailview)
  - [List Views](/ja/1.11/ref/class-based-views/generic-display/#listview)
- [Generic editing ビュー](/ja/1.11/ref/class-based-views/generic-editing/)

  - [`FormView`](/ja/1.11/ref/class-based-views/generic-editing/#formview)
  - [`CreateView`](/ja/1.11/ref/class-based-views/generic-editing/#createview)
  - [`UpdateView`](/ja/1.11/ref/class-based-views/generic-editing/#updateview)
  - [`DeleteView`](/ja/1.11/ref/class-based-views/generic-editing/#deleteview)
- [Generic date ビュー](/ja/1.11/ref/class-based-views/generic-date-based/)

  - [`ArchiveIndexView`](/ja/1.11/ref/class-based-views/generic-date-based/#archiveindexview)
  - [`YearArchiveView`](/ja/1.11/ref/class-based-views/generic-date-based/#yeararchiveview)
  - [`MonthArchiveView`](/ja/1.11/ref/class-based-views/generic-date-based/#montharchiveview)
  - [`WeekArchiveView`](/ja/1.11/ref/class-based-views/generic-date-based/#weekarchiveview)
  - [`DayArchiveView`](/ja/1.11/ref/class-based-views/generic-date-based/#dayarchiveview)
  - [`TodayArchiveView`](/ja/1.11/ref/class-based-views/generic-date-based/#todayarchiveview)
  - [`DateDetailView`](/ja/1.11/ref/class-based-views/generic-date-based/#datedetailview)
- [クラスベースビュー mixin](/ja/1.11/ref/class-based-views/mixins/)

  - [Simple mixins](/ja/1.11/ref/class-based-views/mixins-simple/)

    - [`ContextMixin`](/ja/1.11/ref/class-based-views/mixins-simple/#contextmixin)
    - [`TemplateResponseMixin`](/ja/1.11/ref/class-based-views/mixins-simple/#templateresponsemixin)
  - [Single object mixins](/ja/1.11/ref/class-based-views/mixins-single-object/)

    - [`SingleObjectMixin`](/ja/1.11/ref/class-based-views/mixins-single-object/#singleobjectmixin)
    - [`SingleObjectTemplateResponseMixin`](/ja/1.11/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
  - [Multiple object mixins](/ja/1.11/ref/class-based-views/mixins-multiple-object/)

    - [`MultipleObjectMixin`](/ja/1.11/ref/class-based-views/mixins-multiple-object/#multipleobjectmixin)
    - [`MultipleObjectTemplateResponseMixin`](/ja/1.11/ref/class-based-views/mixins-multiple-object/#multipleobjecttemplateresponsemixin)
  - [Editing mixins](/ja/1.11/ref/class-based-views/mixins-editing/)

    - [`FormMixin`](/ja/1.11/ref/class-based-views/mixins-editing/#formmixin)
    - [`ModelFormMixin`](/ja/1.11/ref/class-based-views/mixins-editing/#modelformmixin)
    - [`ProcessFormView`](/ja/1.11/ref/class-based-views/mixins-editing/#processformview)
    - [`DeletionMixin`](/ja/1.11/ref/class-based-views/mixins-editing/#deletionmixin)
  - [Date-based mixins](/ja/1.11/ref/class-based-views/mixins-date-based/)

    - [`YearMixin`](/ja/1.11/ref/class-based-views/mixins-date-based/#yearmixin)
    - [`MonthMixin`](/ja/1.11/ref/class-based-views/mixins-date-based/#monthmixin)
    - [`DayMixin`](/ja/1.11/ref/class-based-views/mixins-date-based/#daymixin)
    - [`WeekMixin`](/ja/1.11/ref/class-based-views/mixins-date-based/#weekmixin)
    - [`DateMixin`](/ja/1.11/ref/class-based-views/mixins-date-based/#datemixin)
    - [`BaseDateListView`](/ja/1.11/ref/class-based-views/mixins-date-based/#basedatelistview)
- [クラスベース汎用ビュー - フラットインデックス](/ja/1.11/ref/class-based-views/flattened-index/)

  - [シンプルな汎用ビュー](/ja/1.11/ref/class-based-views/flattened-index/#simple-generic-views)

    - [`View`](/ja/1.11/ref/class-based-views/flattened-index/#view)
    - [`TemplateView`](/ja/1.11/ref/class-based-views/flattened-index/#templateview)
    - [`RedirectView`](/ja/1.11/ref/class-based-views/flattened-index/#redirectview)
  - [詳細のビュー](/ja/1.11/ref/class-based-views/flattened-index/#detail-views)

    - [Detail Views](/ja/1.11/ref/class-based-views/flattened-index/#detailview)
  - [リストのビュー](/ja/1.11/ref/class-based-views/flattened-index/#list-views)

    - [List Views](/ja/1.11/ref/class-based-views/flattened-index/#listview)
  - [編集するためのビュー](/ja/1.11/ref/class-based-views/flattened-index/#editing-views)

    - [`FormView`](/ja/1.11/ref/class-based-views/flattened-index/#formview)
    - [`CreateView`](/ja/1.11/ref/class-based-views/flattened-index/#createview)
    - [`UpdateView`](/ja/1.11/ref/class-based-views/flattened-index/#updateview)
    - [`DeleteView`](/ja/1.11/ref/class-based-views/flattened-index/#deleteview)
  - [日付ベースのビュー](/ja/1.11/ref/class-based-views/flattened-index/#date-based-views)

    - [`ArchiveIndexView`](/ja/1.11/ref/class-based-views/flattened-index/#archiveindexview)
    - [`YearArchiveView`](/ja/1.11/ref/class-based-views/flattened-index/#yeararchiveview)
    - [`MonthArchiveView`](/ja/1.11/ref/class-based-views/flattened-index/#montharchiveview)
    - [`WeekArchiveView`](/ja/1.11/ref/class-based-views/flattened-index/#weekarchiveview)
    - [`DayArchiveView`](/ja/1.11/ref/class-based-views/flattened-index/#dayarchiveview)
    - [`TodayArchiveView`](/ja/1.11/ref/class-based-views/flattened-index/#todayarchiveview)
    - [`DateDetailView`](/ja/1.11/ref/class-based-views/flattened-index/#datedetailview)

## 仕様

クラスベースビューによって提供される各リクエストは、独立した状態を持っています。そのため、状態変数をインスタンスに格納するのは安全です (例: `self.foo = 3` はスレッドセーフな操作です) 。

クラスベースビューは [`as_view()`](/ja/1.11/ref/class-based-views/base/#django.views.generic.base.View.as_view) クラスメソッドを使って URL パターンに記述されます。

```
urlpatterns = [
    url(r'^view/$', MyView.as_view(size=42)),
]
```

> **Thread safety with view arguments**
>
> Arguments passed to a view are shared between every instance of a view.
> This means that you shouldn't use a list, dictionary, or any other
> mutable object as an argument to a view. If you do and the shared object
> is modified, the actions of one user visiting your view could have an
> effect on subsequent users visiting the same view.

Arguments passed into [`as_view()`](/ja/1.11/ref/class-based-views/base/#django.views.generic.base.View.as_view) will
be assigned onto the instance that is used to service a request. Using the
previous example, this means that every request on `MyView` is able to use
`self.size`. Arguments must correspond to attributes that already exist on
the class (return `True` on a `hasattr` check).

## Base vs Generic views

Base class-based views can be thought of as *parent* views, which can be
used by themselves or inherited from. They may not provide all the
capabilities required for projects, in which case there are Mixins which
extend what base views can do.

Django’s generic views are built off of those base views, and were developed
as a shortcut for common usage patterns such as displaying the details of an
object. They take certain common idioms and patterns found in view
development and abstract them so that you can quickly write common views of
data without having to repeat yourself.

Most generic views require the `queryset` key, which is a `QuerySet`
instance; see [クエリを作成する](/ja/1.11/topics/db/queries/) for more information about `QuerySet`
objects.
