ビルトインのクラスベースビュー APILink to this heading

クラスベースビュー API のリファレンスです。前置きとして、トピックガイドの クラスベースビュー をご覧ください。

仕様Link to this heading

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

クラスベースビューは as_view() クラスメソッドを使って URL パターンに記述されます。

Code
urlpatterns = [
    path('view/', MyView.as_view(size=42)),
]

as_view() に渡された引数は、リクエストを処理するために使用されるインスタンスに割り当てられます。 前の例を使用すると、MyView のすべてのリクエストが self.size を使用できることを意味します。 引数はクラスにすでに存在する属性に対応していなければなりません (hasattrチェックで ``True を返します)。

Base vs Generic viewsLink to this heading

ベースクラスベースのビューは 親の ビューとして考えることができ、それ自体で使用することも継承することもできます。プロジェクトに必要なすべての機能を提供していないかもしれませんが、その場合はベースビューが行えることを拡張するミックスインがあります。

Django のジェネリックビューは、ベースビューから構築され、オブジェクトの詳細を表示するなどの一般的な使用パターンのショートカットとして開発されました。 ビューの開発で見つかった一定の共通したイディオムやパターンを取り、それらを抽象化して、自分で繰り返し行わなくてもデータの一般的なビューを素早く作成することができます。

ほとんどのジェネリックビューでは、QuerySet インスタンスである queryset キーが必要です。 QuerySet オブジェクトの詳細については、 クエリを作成する を参照してください。