{"title":"ビルトインのクラスベースビュー API","version":"5.0","locale":"ja","docname":"ref/class-based-views/index","url":"/ja/5.0/ref/class-based-views/","canonical":"https://djangodocs.dev/ja/5.0/ref/class-based-views/","summary":"クラスベースビュー API のリファレンスです。入門的な内容については クラスベースビュー トピックガイド を参照してください。 ベース・ビュー View TemplateView RedirectView ジェネリック表示ビュー (Generic display view) DetailView ListView…","html":"<h1>ビルトインのクラスベースビュー API<a class=\"heading-anchor\" href=\"#built-in-class-based-views-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>クラスベースビュー API のリファレンスです。入門的な内容については <a class=\"reference internal\" href=\"/ja/5.0/topics/class-based-views/\"><span class=\"doc\">クラスベースビュー</span></a> トピックガイド を参照してください。</p>\n<div class=\"toctree-wrapper compound\">\n<ul>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/base/\">ベース・ビュー</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/base/#view\"><code class=\"docutils literal notranslate\"><span class=\"pre\">View</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/base/#templateview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">TemplateView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/base/#redirectview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">RedirectView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-display/\">ジェネリック表示ビュー (Generic display view)</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-display/#detailview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DetailView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-display/#listview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ListView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-editing/\">ジェネリック編集ビュー (Generic editing view)</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-editing/#formview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">FormView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-editing/#createview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">CreateView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-editing/#updateview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-editing/#deleteview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DeleteView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/\">ジェネリック日付ビュー</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#archiveindexview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ArchiveIndexView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#yeararchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">YearArchiveView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#montharchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">MonthArchiveView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#weekarchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">WeekArchiveView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#dayarchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DayArchiveView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#todayarchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">TodayArchiveView</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/generic-date-based/#datedetailview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DateDetailView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins/\">クラスベースビューのミックスイン (mixin)</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-simple/\">シンプルなミックスイン (mixin)</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-simple/#contextmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ContextMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-simple/#templateresponsemixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">TemplateResponseMixin</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-single-object/\">単一オブジェクト ミックスイン (Single object mixin)</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-single-object/#singleobjectmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">SingleObjectMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">SingleObjectTemplateResponseMixin</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-multiple-object/\">複数オブジェクトミックスイン (Multiple object mixin)</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-multiple-object/#multipleobjectmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleObjectMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-multiple-object/#multipleobjecttemplateresponsemixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleObjectTemplateResponseMixin</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-editing/\">ミックスイン (mixin) を編集する</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-editing/#formmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">FormMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-editing/#modelformmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelFormMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-editing/#processformview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ProcessFormView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-editing/#deletionmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DeletionMixin</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/\">日付ベースのミックスイン (mixin)</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/#yearmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">YearMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/#monthmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">MonthMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/#daymixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DayMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/#weekmixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">WeekMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/#datemixin\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DateMixin</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/mixins-date-based/#basedatelistview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseDateListView</span></code></a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/\">クラスベースのジェネリックビュー: フラットインデックス</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#simple-generic-views\">シンプルなジェネリックビュー</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#view\"><code class=\"docutils literal notranslate\"><span class=\"pre\">View</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#templateview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">TemplateView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#redirectview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">RedirectView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#detail-views\">詳細ビュー</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#detailview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DetailView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#list-views\">リストビュー</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#listview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ListView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#editing-views\">編集ビュー</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#formview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">FormView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#createview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">CreateView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#updateview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#deleteview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DeleteView</span></code></a></li>\n</ul>\n</li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#date-based-views\">日付ベースのビュー</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#archiveindexview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ArchiveIndexView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#yeararchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">YearArchiveView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#montharchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">MonthArchiveView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#weekarchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">WeekArchiveView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#dayarchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DayArchiveView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#todayarchiveview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">TodayArchiveView</span></code></a></li>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/flattened-index/#datedetailview\"><code class=\"docutils literal notranslate\"><span class=\"pre\">DateDetailView</span></code></a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n<section id=\"specification\">\n<h2>仕様<a class=\"heading-anchor\" href=\"#specification\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>クラスベースビューによって提供される各リクエストは、独立した状態を持っています。そのため、状態変数をインスタンスに格納するのは安全です (例: <code class=\"docutils literal notranslate\"><span class=\"pre\">self.foo</span> <span class=\"pre\">=</span> <span class=\"pre\">3</span></code> はスレッドセーフな操作です) 。</p>\n<p>クラスベースビューは <a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/base/#django.views.generic.base.View.as_view\" title=\"django.views.generic.base.View.as_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_view()</span></code></a> クラスメソッドを使って URL パターンに記述されます。</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;view/&quot;</span><span class=\"p\">,</span> <span class=\"n\">MyView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">42</span><span class=\"p\">)),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition-thread-safety-with-view-arguments admonition\">\n<p class=\"admonition-title\">ビューの引数によるスレッドの安全性</p>\n<p>ビューから渡される引数は、ビューのすべてのインスタンスに共有されます。なのでリストや辞書、または他のミュータブルなオブジェクトを使用しないでください。共有オブジェクトが変更された場合、ビューにアクセスしたあるユーザーのアクションが、同じビューにアクセスする後続のユーザーに影響を与える可能性があります。</p>\n</aside>\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/class-based-views/base/#django.views.generic.base.View.as_view\" title=\"django.views.generic.base.View.as_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_view()</span></code></a> に渡された引数は、リクエストを処理するために使用されるインスタンスに割り当てられます。 前の例を使用すると、<code class=\"docutils literal notranslate\"><span class=\"pre\">MyView</span></code> のすべてのリクエストが <code class=\"docutils literal notranslate\"><span class=\"pre\">self.size</span></code> を使用できることを意味します。 引数はクラスにすでに存在する属性に対応していなければなりません (<code class=\"docutils literal notranslate\"><span class=\"pre\">hasattr</span></code> チェックで <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します)。</p>\n</section>\n<section id=\"base-vs-generic-views\">\n<h2>ベースビュー vs ジェネリックビュー<a class=\"heading-anchor\" href=\"#base-vs-generic-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>ベースクラスベースのビューは <em>親の</em> ビューとして考えることができ、それ自体で使用することも継承することもできます。プロジェクトに必要なすべての機能を提供していないかもしれませんが、その場合はベースビューが行えることを拡張するミックスインがあります。</p>\n<p>Django のジェネリックビューは、ベースビューから構築され、オブジェクトの詳細を表示するなどの一般的な使用パターンのショートカットとして開発されました。ビューの開発で見つかった一定の共通したイディオムやパターンを取り、それらを抽象化して、自分で繰り返し行わなくてもデータの一般的なビューを素早く作成できます。</p>\n<p>ほとんどのジェネリックビューでは、<code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> インスタンスである <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> キーが必要です。 <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> オブジェクトの詳細については、 <a class=\"reference internal\" href=\"/ja/5.0/topics/db/queries/\"><span class=\"doc\">クエリを作成する</span></a> を参照してください。</p>\n</section>","rootId":"built-in-class-based-views-api","toc":[{"title":"仕様","anchor":"specification","children":[]},{"title":"ベースビュー vs ジェネリックビュー","anchor":"base-vs-generic-views","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/5.0/ref/"}],"prev":{"docname":"ref/checks","title":"システムチェックフレームワーク","url":"/ja/5.0/ref/checks/"},"next":{"docname":"ref/class-based-views/base","title":"ベース・ビュー","url":"/ja/5.0/ref/class-based-views/base/"},"formats":{"html":"/ja/5.0/ref/class-based-views/","markdown":"/ja/5.0/ref/class-based-views.md","json":"/ja/5.0/ref/class-based-views.json"},"source":"https://github.com/django/django/blob/stable/5.0.x/docs/ref/class-based-views/index.txt","official":"https://docs.djangoproject.com/ja/5.0/ref/class-based-views/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}