{"title":"API des vues intégrées fondées sur les classes","version":"4.1","locale":"fr","docname":"ref/class-based-views/index","url":"/fr/4.1/ref/class-based-views/","canonical":"https://djangodocs.dev/fr/4.1/ref/class-based-views/","summary":"La référence de l’API des vues fondées sur les classes. Pour une introduction à ce concept, consultez le guide thématique Vues fondées sur les classes . Vues de…","html":"<h1>API des vues intégrées fondées sur les classes<a class=\"heading-anchor\" href=\"#built-in-class-based-views-api\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>La référence de l’API des vues fondées sur les classes. Pour une introduction à ce concept, consultez le guide thématique <a class=\"reference internal\" href=\"/fr/4.1/topics/class-based-views/\"><span class=\"doc\">Vues fondées sur les classes</span></a>.</p>\n<div class=\"toctree-wrapper compound\">\n<ul>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/fr/4.1/ref/class-based-views/base/\">Vues de base</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/generic-display/\">Vues génériques d’affichage</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/generic-editing/\">Vues génériques d’édition</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/generic-date-based/\">Vues génériques basées sur les dates</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/mixins/\">Vues « mixins » fondées sur les classes</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/fr/4.1/ref/class-based-views/mixins-simple/\">Mixins simples</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/mixins-single-object/\">Classes mixins pour objet unique</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/mixins-multiple-object/\">Classes mixins pour objets multiples</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/mixins-editing/\">Classes mixins d’édition</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/mixins-date-based/\">Mixins basées sur les dates</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/flattened-index/\">Vues génériques fondées sur les classes - index général</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/fr/4.1/ref/class-based-views/flattened-index/#simple-generic-views\">Vues génériques simples</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/flattened-index/#detail-views\">Vues de détail</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/flattened-index/#list-views\">Vues de liste</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/flattened-index/#editing-views\">Vues d’édition</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/ref/class-based-views/flattened-index/#date-based-views\">Vues basées sur les dates</a><ul>\n<li class=\"toctree-l3\"><a class=\"reference internal\" href=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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=\"/fr/4.1/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>Spécification<a class=\"heading-anchor\" href=\"#specification\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chaque requête servie par une vue basée sur une classe possède un état indépendant ; il est donc possible de stocker des variables d’état au sein de l’instance de la vue (par exemple, <code class=\"docutils literal notranslate\"><span class=\"pre\">self.foo</span> <span class=\"pre\">=</span> <span class=\"pre\">3</span></code> respecte la concurrence entre fils d’exécution).</p>\n<p>Une vue basée sur une classe est déployée dans un motif d’URL en utilisant la méthode de classe <a class=\"reference internal\" href=\"/fr/4.1/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>:</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=\"s1\">&#39;view/&#39;</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\">Concurrence d’exécution sur les paramètres de vue</p>\n<p>Les paramètres transmis à une vue sont partagés entre toutes les instances de la vue. Cela signifie que vous ne devriez pas utiliser une liste, un dictionnaire ou tout autre objet mutant comme paramètre d’une vue. Si vous le faites et que l’objet partagé est modifié, les actions d’un visiteur du site sur une vue pourraient avoir des effets sur d’autres utilisateurs accédant à la même vue.</p>\n</aside>\n<p>Les paramètres fournis à la méthode <a class=\"reference internal\" href=\"/fr/4.1/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> sont attribués à l’instance créée pour servir la requête. Dans l’exemple précédent, cela signifie que chaque requête à <code class=\"docutils literal notranslate\"><span class=\"pre\">MyView</span></code> a la possibilité d’utiliser <code class=\"docutils literal notranslate\"><span class=\"pre\">self.size</span></code>. Les paramètres doivent correspondre à des attributs déjà existants dans la classe (la méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">hasattr</span></code> doit renvoyer <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>).</p>\n</section>\n<section id=\"base-vs-generic-views\">\n<h2>Vues de base et vues génériques<a class=\"heading-anchor\" href=\"#base-vs-generic-views\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Les vues de base fondées sur les classes peuvent être considérées comme des vues <em>parentes</em> qui peuvent être utilisées telles quelles ou comme classe parente. Elles ne contiennent pas toutes les fonctionnalités requises par les projets, c’est pour cela qu’il y a des vues de type <code class=\"docutils literal notranslate\"><span class=\"pre\">Mixin</span></code> qui étendent les fonctionnalités des vues de base.</p>\n<p>Les vues génériques de Django sont construites à partir de ces vues de base et ont été développées comme des raccourcis pour répondre aux besoins les plus fréquents, comme pour l’affichage des détails d’un objet. Elles s’attachent à trouver des motifs ou idiomes courants dans le développement des vues et à les abstraire de façon à ce qu’on puisse rapidement écrire des vues courantes sans devoir se répéter inutilement.</p>\n<p>La plupart des vues génériques ont besoin de la clé <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> qui est une instance de <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>. Consultez <a class=\"reference internal\" href=\"/fr/4.1/topics/db/queries/\"><span class=\"doc\">Création de requêtes</span></a> pour plus d’informations sur les objets <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>.</p>\n</section>","rootId":"built-in-class-based-views-api","toc":[{"title":"Spécification","anchor":"specification","children":[]},{"title":"Vues de base et vues génériques","anchor":"base-vs-generic-views","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/4.1/ref/"}],"prev":{"docname":"ref/checks","title":"Infrastructure de contrôle système","url":"/fr/4.1/ref/checks/"},"next":{"docname":"ref/class-based-views/base","title":"Vues de base","url":"/fr/4.1/ref/class-based-views/base/"},"formats":{"html":"/fr/4.1/ref/class-based-views/","markdown":"/fr/4.1/ref/class-based-views.md","json":"/fr/4.1/ref/class-based-views.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/ref/class-based-views/index.txt","official":"https://docs.djangoproject.com/fr/4.1/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"]}