{"title":"Vues génériques d’affichage","version":"3.2","locale":"fr","docname":"ref/class-based-views/generic-display","url":"/fr/3.2/ref/class-based-views/generic-display/","canonical":"https://djangodocs.dev/fr/3.2/ref/class-based-views/generic-display/","summary":"Les deux vues fondées sur des classes suivantes sont conçues pour afficher des données. Pour beaucoup de projets, il s’agit habituellement des vues les plus…","html":"<h1>Vues génériques d’affichage<a class=\"heading-anchor\" href=\"#generic-display-views\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Les deux vues fondées sur des classes suivantes sont conçues pour afficher des données. Pour beaucoup de projets, il s’agit habituellement des vues les plus fréquemment utilisées.</p>\n<section id=\"detailview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">DetailView</span></code><a class=\"heading-anchor\" href=\"#detailview\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.DetailView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.detail.</span></span><span class=\"sig-name descname\"><span class=\"pre\">DetailView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.DetailView\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Dans le code de cette vue, <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code> contient l’objet sur lequel portent les opérations de la vue.</p>\n<p><strong>Ancêtres (MRO)</strong></p>\n<p>Cette vue hérite des méthodes et des attributs des vues suivantes :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin\" title=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.detail.BaseDetailView\" title=\"django.views.generic.detail.BaseDetailView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.BaseDetailView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Index des méthodes</strong></p>\n<ol class=\"arabic simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View.setup\" title=\"django.views.generic.base.View.setup\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">setup()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dispatch()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View.http_method_not_allowed\" title=\"django.views.generic.base.View.http_method_not_allowed\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">http_method_not_allowed()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin.get_template_names\" title=\"django.views.generic.base.TemplateResponseMixin.get_template_names\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_template_names()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_slug_field\" title=\"django.views.generic.detail.SingleObjectMixin.get_slug_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_slug_field()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_queryset\" title=\"django.views.generic.detail.SingleObjectMixin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_object\" title=\"django.views.generic.detail.SingleObjectMixin.get_object\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_object()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_context_object_name\" title=\"django.views.generic.detail.SingleObjectMixin.get_context_object_name\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_object_name()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_context_data\" title=\"django.views.generic.detail.SingleObjectMixin.get_context_data\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_data()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.detail.BaseDetailView.get\" title=\"django.views.generic.detail.BaseDetailView.get\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin.render_to_response\" title=\"django.views.generic.base.TemplateResponseMixin.render_to_response\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render_to_response()</span></code></a></p></li>\n</ol>\n<p><strong>Exemple myapp/views.py</strong> :</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.detail</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DetailView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">articles.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleDetailView</span><span class=\"p\">(</span><span class=\"n\">DetailView</span><span class=\"p\">):</span>\n\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Article</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_context_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_context_data</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"n\">context</span><span class=\"p\">[</span><span class=\"s1\">&#39;now&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"n\">context</span>\n</code></pre></div>\n<p><strong>Exemple myapp/urls.py</strong> :</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">article.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleDetailView</span>\n\n<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;&lt;slug:slug&gt;/&#39;</span><span class=\"p\">,</span> <span class=\"n\">ArticleDetailView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;article-detail&#39;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>Exemple myapp/article_detail.html</strong> :</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">object.headline</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">object.content</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Reporter: <span class=\"cp\">{{</span> <span class=\"nv\">object.reporter</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Published: <span class=\"cp\">{{</span> <span class=\"nv\">object.pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Date: <span class=\"cp\">{{</span> <span class=\"nv\">now</span><span class=\"o\">|</span><span class=\"nf\">date</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.BaseDetailView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.detail.</span></span><span class=\"sig-name descname\"><span class=\"pre\">BaseDetailView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.BaseDetailView\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une vue de base pour l’affichage d’un seul objet. Elle n’est pas conçue pour être utilisée directement, mais plutôt comme classe parente pour <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.Detailiew</span></code> ou d’autres vues représentant les détails d’un seul objet.</p>\n<p><strong>Ancêtres (MRO)</strong></p>\n<p>Cette vue hérite des méthodes et des attributs des vues suivantes :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Méthodes</strong></p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.BaseDetailView.get\">\n<span class=\"sig-name descname\"><span class=\"pre\">get</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.BaseDetailView.get\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ajoute <code class=\"docutils literal notranslate\"><span class=\"pre\">object</span></code> au contexte.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"listview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">ListView</span></code><a class=\"heading-anchor\" href=\"#listview\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.ListView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.list.</span></span><span class=\"sig-name descname\"><span class=\"pre\">ListView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.ListView\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une page représentant une liste d’objets.</p>\n<p>Dans le code de cette vue, <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object_list</span></code> contient la liste d’objets (normalement un jeu de requête, mais pas toujours) sur laquelle portent les opérations de la vue.</p>\n<p><strong>Ancêtres (MRO)</strong></p>\n<p>Cette vue hérite des méthodes et des attributs des vues suivantes :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.list.BaseListView\" title=\"django.views.generic.list.BaseListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.BaseListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Index des méthodes</strong></p>\n<ol class=\"arabic simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View.setup\" title=\"django.views.generic.base.View.setup\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">setup()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View.dispatch\" title=\"django.views.generic.base.View.dispatch\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dispatch()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View.http_method_not_allowed\" title=\"django.views.generic.base.View.http_method_not_allowed\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">http_method_not_allowed()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin.get_template_names\" title=\"django.views.generic.base.TemplateResponseMixin.get_template_names\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_template_names()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin.get_queryset\" title=\"django.views.generic.list.MultipleObjectMixin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin.get_context_object_name\" title=\"django.views.generic.list.MultipleObjectMixin.get_context_object_name\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_object_name()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin.get_context_data\" title=\"django.views.generic.list.MultipleObjectMixin.get_context_data\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_data()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.list.BaseListView.get\" title=\"django.views.generic.list.BaseListView.get\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin.render_to_response\" title=\"django.views.generic.base.TemplateResponseMixin.render_to_response\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render_to_response()</span></code></a></p></li>\n</ol>\n<p><strong>Exemple de fichier views.py</strong>:</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.list</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ListView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">articles.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleListView</span><span class=\"p\">(</span><span class=\"n\">ListView</span><span class=\"p\">):</span>\n\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Article</span>\n    <span class=\"n\">paginate_by</span> <span class=\"o\">=</span> <span class=\"mi\">100</span>  <span class=\"c1\"># if pagination is desired</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_context_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_context_data</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"n\">context</span><span class=\"p\">[</span><span class=\"s1\">&#39;now&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"n\">context</span>\n</code></pre></div>\n<p><strong>Exemple myapp/urls.py</strong> :</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">article.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleListView</span>\n\n<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;&#39;</span><span class=\"p\">,</span> <span class=\"n\">ArticleListView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;article-list&#39;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>Exemple myapp/article_list.html</strong> :</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>Articles<span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">article</span> <span class=\"k\">in</span> <span class=\"nv\">object_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">article.pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span> <span class=\"cp\">}}</span> - <span class=\"cp\">{{</span> <span class=\"nv\">article.headline</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">empty</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>No articles yet.<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Si vous utilisez la pagination, vous pouvez adapter le <a class=\"reference internal\" href=\"/fr/3.2/topics/pagination/#using-paginator-in-view\"><span class=\"std std-ref\">gabarit exemple de la documentation de pagination</span></a>. Modifiez les instances de <code class=\"docutils literal notranslate\"><span class=\"pre\">contacts</span></code> de cet exemple en <code class=\"docutils literal notranslate\"><span class=\"pre\">objet_page</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.BaseListView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.list.</span></span><span class=\"sig-name descname\"><span class=\"pre\">BaseListView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.BaseListView\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une vue de base pour l’affichage d’une liste d’objets. Elle n’est pas conçue pour être utilisée directement, mais plutôt comme classe parente pour  <a class=\"reference internal\" href=\"#django.views.generic.list.ListView\" title=\"django.views.generic.list.ListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.ListView</span></code></a> ou d’autres vues représentant des listes d’objets.</p>\n<p><strong>Ancêtres (MRO)</strong></p>\n<p>Cette vue hérite des méthodes et des attributs des vues suivantes :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>Méthodes</strong></p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.BaseListView.get\">\n<span class=\"sig-name descname\"><span class=\"pre\">get</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.BaseListView.get\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ajoute <code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code> au contexte. Si <a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin.allow_empty\" title=\"django.views.generic.list.MultipleObjectMixin.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, une liste vide est affichée. Si <a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin.allow_empty\" title=\"django.views.generic.list.MultipleObjectMixin.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, une erreur 404 est générée.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"generic-display-views","toc":[{"title":"DetailView","anchor":"detailview","children":[]},{"title":"ListView","anchor":"listview","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/3.2/ref/"},{"docname":"ref/class-based-views/index","title":"API des vues intégrées fondées sur les classes","url":"/fr/3.2/ref/class-based-views/"}],"prev":{"docname":"ref/class-based-views/base","title":"Vues de base","url":"/fr/3.2/ref/class-based-views/base/"},"next":{"docname":"ref/class-based-views/generic-editing","title":"Vues génériques d’édition","url":"/fr/3.2/ref/class-based-views/generic-editing/"},"formats":{"html":"/fr/3.2/ref/class-based-views/generic-display/","markdown":"/fr/3.2/ref/class-based-views/generic-display.md","json":"/fr/3.2/ref/class-based-views/generic-display.json"},"source":"https://github.com/django/django/blob/stable/3.2.x/docs/ref/class-based-views/generic-display.txt","official":"https://docs.djangoproject.com/fr/3.2/ref/class-based-views/generic-display/","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"]}