{"title":"Le système des plans de site (sitemap)","version":"6.0","locale":"fr","docname":"ref/contrib/sitemaps","url":"/fr/6.0/ref/contrib/sitemaps/","canonical":"https://djangodocs.dev/fr/6.0/ref/contrib/sitemaps/","summary":"Django est livré avec un système de génération de plans de site à haut niveau qui permet de créer des fichiers XML sitemap.","html":"<span id=\"the-sitemap-framework\"></span><h1>Le système des plans de site (<code class=\"docutils literal notranslate\">sitemap</code>)<a class=\"heading-anchor\" href=\"#module-django.contrib.sitemaps\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django est livré avec un système de génération de plans de site à haut niveau qui permet de créer des fichiers XML <a class=\"reference external\" href=\"https://www.sitemaps.org/\">sitemap</a>.</p>\n<section id=\"overview\">\n<h2>Aperçu<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Un plan de site « sitemap » est un fichier XML sur un site web indiquant aux robots des moteurs de recherche à quelle fréquence les pages changent et comment certaines pages « importantes » sont en relation avec d’autres pages du site. Cette information aide les moteurs de recherche à indexer un site.</p>\n<p>L’application sitemap de Django automatise la création de ce fichier XML en permettant d’exprimer cette information sous forme de code Python.</p>\n<p>Cela fonctionne un peu comme le <a class=\"reference internal\" href=\"/fr/6.0/ref/contrib/syndication/\"><span class=\"doc\">système de syndication</span></a> de Django. Pour créer un plan de site, écrivez une classe <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> et référencez-la dans la <a class=\"reference internal\" href=\"/fr/6.0/topics/http/urls/\"><span class=\"doc\">configuration d’URL</span></a>.</p>\n</section>\n<section id=\"installation\">\n<h2>Installation<a class=\"heading-anchor\" href=\"#installation\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Pour installer l’application sitemap, procédez comme suit :</p>\n<ol class=\"arabic simple\">\n<li><p>Ajoutez <code class=\"docutils literal notranslate\">'django.contrib.sitemaps'</code> au réglage <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a>.</p></li>\n<li><p>Vérifiez la présence d’un moteur <code class=\"docutils literal notranslate\">DjangoTemplates``dont l'option ``APP_DIRS</code> vaut <code class=\"docutils literal notranslate\">True</code> dans le réglage <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATES</code></a>. Il y est par défaut, de sorte que vous aurez uniquement besoin de l’ajouter si vous avez modifié ce réglage.</p></li>\n<li><p>Assurez-vous d’avoir installé le <a class=\"reference internal\" href=\"/fr/6.0/ref/contrib/sites/#module-django.contrib.sites\" title=\"django.contrib.sites: Lets you operate multiple websites from the same database and Django project\"><code class=\"xref py py-mod docutils literal notranslate\">gestionnaire de sites</code></a>.</p></li>\n</ol>\n<p>(Remarque : l’application sitemap n’installe aucune table de base de données. La seule raison pour laquelle elle doit être présente dans <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> est que la fonction de chargement des gabarits <a class=\"reference internal\" href=\"/fr/6.0/ref/templates/api/#django.template.loaders.app_directories.Loader\" title=\"django.template.loaders.app_directories.Loader\"><code class=\"xref py py-func docutils literal notranslate\">Loader()</code></a> doit pouvoir trouver les gabarits par défaut.)</p>\n</section>\n<section id=\"initialization\">\n<h2>Initialisation<a class=\"heading-anchor\" href=\"#initialization\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.views.sitemap\">\n<span class=\"sig-prename descclassname\">views.</span><span class=\"sig-name descname\">sitemap</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\">sitemaps</em>, <em class=\"sig-param\">section<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">template_name<span class=\"o\">=</span><span class=\"default_value\">'sitemap.xml'</span></em>, <em class=\"sig-param\">content_type<span class=\"o\">=</span><span class=\"default_value\">'application/xml'</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.views.sitemap\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Pour activer la génération du plan du site d’un site Django, ajoutez cette ligne à la <a class=\"reference internal\" href=\"/fr/6.0/topics/http/urls/\"><span class=\"doc\">configuration d’URL</span></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=\"kn\">from</span> <span class=\"nn\">django.contrib.sitemaps.views</span> <span class=\"kn\">import</span> sitemap\n\npath<span class=\"p\">(</span>\n    <span class=\"s2\">&quot;sitemap.xml&quot;</span><span class=\"p\">,</span>\n    sitemap<span class=\"p\">,</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">},</span>\n    name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.sitemap&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Cela indique à Django de construire un plan de site lorsqu’un client accède à <code class=\"file docutils literal notranslate\">/sitemap.xml</code>.</p>\n<p>Le nom du fichier sitemap n’est pas important, mais l’emplacement l’est. Les moteurs de recherche n’indexeront que les liens du plan de site à partir du niveau actuel de l’URL et en-dessous. Par exemple, si <code class=\"file docutils literal notranslate\">sitemap.xml</code> réside dans le répertoire racine, il peut faire référence à n’importe quelle URL du site. Cependant, si le fichier sitemap réside dans <code class=\"file docutils literal notranslate\">/content/sitemap.xml</code>, il ne peut référencer que des URL qui commencent par <code class=\"file docutils literal notranslate\">/content/</code>.</p>\n<p>La vue <code class=\"docutils literal notranslate\">sitemap</code> accepte un paramètre supplémentaire obligatoire : <code class=\"docutils literal notranslate\">{'sitemaps': sitemaps}</code>. <code class=\"docutils literal notranslate\">sitemaps</code> doit être un dictionnaire qui associe une étiquette de section courte (par exemple, <code class=\"docutils literal notranslate\">blog</code> ou <code class=\"docutils literal notranslate\">nouvelles</code>) à sa classe <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> (par exemple, <code class=\"docutils literal notranslate\">BlogSitemap</code> ou <code class=\"docutils literal notranslate\">NewsSitemap</code>). Il peut également s’appliquer à une <em>instance</em> de classe <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> (par exemple, <code class=\"docutils literal notranslate\">BlogSitemap(ma_variable)</code>).</p>\n</section>\n<section id=\"sitemap-classes\">\n<h2>Classes <code class=\"docutils literal notranslate\">Sitemap</code><a class=\"heading-anchor\" href=\"#sitemap-classes\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Une classe <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> est une classe Python qui représente une « section » d’entrées dans votre plan de site. Par exemple, une classe <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> pourrait représenter toutes les entrées de votre blog, tandis qu’une autre pourrait représenter tous les évènements d’un calendrier d’évènements.</p>\n<p>Dans le cas le plus simple, toutes ces sections sont regroupées dans un seul <code class=\"file docutils literal notranslate\">sitemap.xml</code>, mais il est également possible d’utiliser le système pour générer un index de sitemap qui référence d’autres fichiers sitemap individuels, un par section (voir <a class=\"reference internal\" href=\"#creating-a-sitemap-index\">Création d’un index de plan de site</a> ci-dessous).</p>\n<p>Les classes <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> doivent être des sous-classes de <code class=\"docutils literal notranslate\">django.contrib.sitemaps.Sitemap</code>. Elles peuvent résider n’importe où dans votre code source.</p>\n</section>\n<section id=\"an-example\">\n<h2>Un exemple<a class=\"heading-anchor\" href=\"#an-example\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Supposons que vous avez un système de blog, avec un modèle <code class=\"docutils literal notranslate\">Entry</code>. Vous souhaitez que le plan de site contienne les liens vers tous les articles de blog. Voici à quoi la classe de plan de site pourrait ressembler :</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=\"nn\">django.contrib.sitemaps</span> <span class=\"kn\">import</span> Sitemap\n<span class=\"kn\">from</span> <span class=\"nn\">blog.models</span> <span class=\"kn\">import</span> Entry\n\n\n<span class=\"k\">class</span> <span class=\"nc\">BlogSitemap</span><span class=\"p\">(</span>Sitemap<span class=\"p\">):</span>\n    changefreq <span class=\"o\">=</span> <span class=\"s2\">&quot;never&quot;</span>\n    priority <span class=\"o\">=</span> <span class=\"mf\">0.5</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> Entry<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>is_draft<span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">lastmod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> obj<span class=\"p\">):</span>\n        <span class=\"k\">return</span> obj<span class=\"o\">.</span>pub_date\n</code></pre></div>\n<p>Remarque :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.changefreq\" title=\"django.contrib.sitemaps.Sitemap.changefreq\"><code class=\"xref py py-attr docutils literal notranslate\">changefreq</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.priority\" title=\"django.contrib.sitemaps.Sitemap.priority\"><code class=\"xref py py-attr docutils literal notranslate\">priority</code></a> sont des attributs de classe correspondant respectivement aux éléments <code class=\"docutils literal notranslate\">&lt;changefreq&gt;</code> et <code class=\"docutils literal notranslate\">&lt;priority&gt;</code>. Il est possible qu’ils correspondent à des fonctions, comme pour <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a> dans l’exemple ci-dessus.</p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a> est une méthode qui renvoie une <span class=\"xref std std-term\">séquence</span> ou une requête <code class=\"docutils literal notranslate\">QuerySet</code> d’objets. Les objets renvoyés seront transmis à toute méthode exécutable correspondant à une propriété de sitemap (<a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.location\" title=\"django.contrib.sitemaps.Sitemap.location\"><code class=\"xref py py-attr docutils literal notranslate\">location</code></a>, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a>, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.changefreq\" title=\"django.contrib.sitemaps.Sitemap.changefreq\"><code class=\"xref py py-attr docutils literal notranslate\">changefreq</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.priority\" title=\"django.contrib.sitemaps.Sitemap.priority\"><code class=\"xref py py-attr docutils literal notranslate\">priority</code></a>).</p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a> doit renvoyer un objet <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a>.</p></li>\n<li><p>Il n’y a pas de méthode <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.location\" title=\"django.contrib.sitemaps.Sitemap.location\"><code class=\"xref py py-attr docutils literal notranslate\">location</code></a> dans cet exemple, mais vous pouvez la fournir afin de préciser l’URL de l’objet. Par défaut, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.location\" title=\"django.contrib.sitemaps.Sitemap.location\"><code class=\"xref py py-attr docutils literal notranslate\">location</code></a> appelle <code class=\"docutils literal notranslate\">get_absolute_url()</code> pour chaque objet et renvoie le résultat.</p></li>\n</ul>\n</section>\n<section id=\"sitemap-class-reference\">\n<h2>Référence de la classe <code class=\"docutils literal notranslate\">Sitemap</code><a class=\"heading-anchor\" href=\"#sitemap-class-reference\"><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.contrib.sitemaps.Sitemap\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Sitemap</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une classe <code class=\"docutils literal notranslate\">Sitemap</code> peut définir les méthodes/attributs suivants :</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.items\">\n<span class=\"sig-name descname\">items</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.items\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Obligatoire.</strong> Une méthode qui renvoie une <span class=\"xref std std-term\">séquence</span> ou une requête <code class=\"docutils literal notranslate\">QuerySet</code> d’objets. Le système ne se soucie pas de quel <em>type</em> d’objet il s’agit ; tout ce qui compte, c’est que ces objets sont transmis aux méthodes <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.location\" title=\"django.contrib.sitemaps.Sitemap.location\"><code class=\"xref py py-attr docutils literal notranslate\">location</code></a>, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a>, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.changefreq\" title=\"django.contrib.sitemaps.Sitemap.changefreq\"><code class=\"xref py py-attr docutils literal notranslate\">changefreq</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.priority\" title=\"django.contrib.sitemaps.Sitemap.priority\"><code class=\"xref py py-attr docutils literal notranslate\">priority</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.location\">\n<span class=\"sig-name descname\">location</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.location\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong> Soit une méthode, soit un attribut.</p>\n<p>Si c’est une méthode, elle doit renvoyer le chemin absolu pour le dit objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p>\n<p>Si c’est un attribut, sa valeur doit être une chaîne représentant un chemin absolu à utiliser pour <em>chaque</em> objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p>\n<p>Dans les deux cas, « chemin absolu » signifie une URL qui ne comprend ni le protocole ni le domaine. Exemples :</p>\n<ul class=\"simple\">\n<li><p>Bon : <code class=\"docutils literal notranslate\">'/foo/bar/'</code></p></li>\n<li><p>Mauvais : <code class=\"docutils literal notranslate\">'example.com/foo/bar/'</code></p></li>\n<li><p>Mauvais : <code class=\"docutils literal notranslate\">'https://example.com/foo/bar/'</code></p></li>\n</ul>\n<p>Si <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.location\" title=\"django.contrib.sitemaps.Sitemap.location\"><code class=\"xref py py-attr docutils literal notranslate\">location</code></a> n’est pas fourni, le système appelle la méthode <code class=\"docutils literal notranslate\">get_absolute_url()</code> de chaque objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p>\n<p>Pour indiquer un protocole autre que <code class=\"docutils literal notranslate\">'http'</code>, utilisez <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.protocol\" title=\"django.contrib.sitemaps.Sitemap.protocol\"><code class=\"xref py py-attr docutils literal notranslate\">protocol</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.lastmod\">\n<span class=\"sig-name descname\">lastmod</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong> Soit une méthode, soit un attribut.</p>\n<p>Si c’est une méthode, elle doit accepter un paramètre, un objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>, et renvoyer la date/heure de dernière modification de cet objet, en tant que <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a>.</p>\n<p>Si c’est un attribut, sa valeur doit être un objet <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a> représentant la date/heure de dernière modification pour <em>chaque</em> objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p>\n<p>Si tous les éléments d’un plan de site possèdent <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a>, le plan de site généré par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.views.sitemap\" title=\"django.contrib.sitemaps.views.sitemap\"><code class=\"xref py py-func docutils literal notranslate\">views.sitemap()</code></a> comportera un en-tête <code class=\"docutils literal notranslate\">Last-Modified</code> égal à la valeur <code class=\"docutils literal notranslate\">lastmod</code> la plus récente. Vous pouvez activer l’intergiciel <a class=\"reference internal\" href=\"/fr/6.0/ref/middleware/#django.middleware.http.ConditionalGetMiddleware\" title=\"django.middleware.http.ConditionalGetMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">ConditionalGetMiddleware</code></a> pour que Django réponde de manière appropriée aux requêtes contenant un en-tête <code class=\"docutils literal notranslate\">If-Modified-Since</code>, ce qui évitera d’envoyer le plan de site si celui-ci n’a pas changé.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.paginator\">\n<span class=\"sig-name descname\">paginator</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.paginator\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Cette propriété renvoie un <a class=\"reference internal\" href=\"/fr/6.0/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\">Paginator</code></a> pour <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>. Si vous générez des plans de site en lots, il peut être utile de surcharger cette propriété en en faisant une propriété en cache afin d’éviter de multiples appels à <code class=\"docutils literal notranslate\">items()</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.changefreq\">\n<span class=\"sig-name descname\">changefreq</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.changefreq\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong> Soit une méthode, soit un attribut.</p>\n<p>Si c’est une méthode, elle doit accepter un paramètre, un objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>, et renvoyer la fréquence de modification de cet objet, en tant que chaîne.</p>\n<p>Si c’est un attribut, sa valeur doit être une chaîne représentant la fréquence de modification de <em>chaque</em> objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p>\n<p>Les valeurs possibles pour <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.changefreq\" title=\"django.contrib.sitemaps.Sitemap.changefreq\"><code class=\"xref py py-attr docutils literal notranslate\">changefreq</code></a>, que ce soit une méthode ou un attribut, sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">'always'</code> (toujours)</p></li>\n<li><p><code class=\"docutils literal notranslate\">'hourly'</code> (chaque heure)</p></li>\n<li><p><code class=\"docutils literal notranslate\">'daily'</code> (quotidiennement)</p></li>\n<li><p><code class=\"docutils literal notranslate\">'weekly'</code> (chaque semaine)</p></li>\n<li><p><code class=\"docutils literal notranslate\">'monthly'</code> (chaque mois)</p></li>\n<li><p><code class=\"docutils literal notranslate\">'yearly'</code> (annuellement)</p></li>\n<li><p><code class=\"docutils literal notranslate\">'never'</code> (jamais)</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.priority\">\n<span class=\"sig-name descname\">priority</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.priority\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong> Soit une méthode, soit un attribut.</p>\n<p>Si c’est une méthode, elle doit accepter un paramètre, un objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>, et renvoyer la priorité de cet objet, en tant que chaîne ou nombre à virgule.</p>\n<p>Si c’est un attribut, sa valeur doit être une chaîne ou un nombre à virgule représentant la priorité de <em>chaque</em> objet renvoyé par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p>\n<p>Exemples de valeurs pour <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.priority\" title=\"django.contrib.sitemaps.Sitemap.priority\"><code class=\"xref py py-attr docutils literal notranslate\">priority</code></a>: <code class=\"docutils literal notranslate\">0.4</code>, <code class=\"docutils literal notranslate\">1.0</code>. La priorité par défaut d’une page est de <code class=\"docutils literal notranslate\">0.5</code>. Voir la <a class=\"reference external\" href=\"https://www.sitemaps.org/protocol.html#prioritydef\">documentation de sitemaps.org</a> pour plus d’informations.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.protocol\">\n<span class=\"sig-name descname\">protocol</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.protocol\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Cet attribut définit le protocole (<code class=\"docutils literal notranslate\">'http'</code> ou <code class=\"docutils literal notranslate\">'https'</code>) des URL dans le plan du site. S’il n’est pas défini, le protocole avec lequel le plan du site a été demandé sera utilisé. Si le plan du site est construit en dehors du contexte d’une requête, la valeur par défaut est <code class=\"docutils literal notranslate\">'https'</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.limit\">\n<span class=\"sig-name descname\">limit</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.limit\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Cet attribut définit le nombre maximum d’URL incluses sur chaque page du plan de site. Sa valeur ne doit pas dépasser la valeur par défaut de <code class=\"docutils literal notranslate\">50000</code>, qui est la valeur limite supérieure autorisée par le <a class=\"reference external\" href=\"https://www.sitemaps.org/protocol.html#index\">protocole des plans de site</a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.i18n\">\n<span class=\"sig-name descname\">i18n</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.i18n\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Un attribut booléen qui définit si les URL de ce plan de site doivent être générées en utilisant toutes les langues de <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\">LANGUAGES</code></a>. La valeur par défaut est <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.languages\">\n<span class=\"sig-name descname\">languages</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.languages\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Une suite de <a class=\"reference internal\" href=\"/fr/6.0/topics/i18n/#term-language-code\"><span class=\"xref std std-term\">codes de langues</span></a> à utiliser pour la génération de liens alternatifs lorsque <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.i18n\" title=\"django.contrib.sitemaps.Sitemap.i18n\"><code class=\"xref py py-attr docutils literal notranslate\">i18n</code></a> est activé. La valeur par défaut correspond à <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\">LANGUAGES</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.alternates\">\n<span class=\"sig-name descname\">alternates</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.alternates\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Un attribut booléen. Lorsqu’il est est employé de concert avec <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.i18n\" title=\"django.contrib.sitemaps.Sitemap.i18n\"><code class=\"xref py py-attr docutils literal notranslate\">i18n</code></a>, les URL produites auront chacune une liste de liens alternatifs pointant vers d’autres versions linguistiques à l’aide de l”<a class=\"reference external\" href=\"https://developers.google.com/search/docs/advanced/crawling/localized-versions\">attribut hreflang</a>. La valeur par défaut est <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.x_default\">\n<span class=\"sig-name descname\">x_default</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.x_default\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong></p>\n<p>Un attribut booléen. Lorsqu’il vaut <code class=\"docutils literal notranslate\">True</code>, les liens alternatifs générés par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.alternates\" title=\"django.contrib.sitemaps.Sitemap.alternates\"><code class=\"xref py py-attr docutils literal notranslate\">alternates</code></a> contiendront une entrée <code class=\"docutils literal notranslate\">hreflang=&quot;x-default&quot;</code> avec la valeur <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\">LANGUAGE_CODE</code></a>. La valeur par défaut est <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.get_latest_lastmod\">\n<span class=\"sig-name descname\">get_latest_lastmod</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.get_latest_lastmod\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif.</strong> Une méthode qui renvoie la dernière valeur renvoyée par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a>. Cette fonction est utilisée pour ajouter l’attribut <code class=\"docutils literal notranslate\">lastmod</code> aux <a class=\"reference internal\" href=\"#sitemap-index-context-variables\"><span class=\"std std-ref\">variables de contexte de l’index de plan de site</span></a>.</p>\n<p>Par défaut, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.get_latest_lastmod\" title=\"django.contrib.sitemaps.Sitemap.get_latest_lastmod\"><code class=\"xref py py-meth docutils literal notranslate\">get_latest_lastmod()</code></a> renvoie :</p>\n<ul class=\"simple\">\n<li><p>Si <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a> est un attribut : <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a>.</p></li>\n<li><p>Si <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a> est une méthode : le <code class=\"docutils literal notranslate\">lastmod</code> le plus récent renvoyé en appelant la méthode avec tous les éléments renvoyés par <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>.</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.Sitemap.get_languages_for_item\">\n<span class=\"sig-name descname\">get_languages_for_item</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">item</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.Sitemap.get_languages_for_item\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Facultatif</strong> Une méthode renvoyant la liste des codes de langues pour lesquels un élément est affiché. Par défaut, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.get_languages_for_item\" title=\"django.contrib.sitemaps.Sitemap.get_languages_for_item\"><code class=\"xref py py-meth docutils literal notranslate\">get_languages_for_item()</code></a> renvoie <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.languages\" title=\"django.contrib.sitemaps.Sitemap.languages\"><code class=\"xref py py-attr docutils literal notranslate\">languages</code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"shortcuts\">\n<h2>Raccourcis<a class=\"heading-anchor\" href=\"#shortcuts\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>L’infrastructure sitemap fournit une classe pratique pour un cas courant :</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.GenericSitemap\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">GenericSitemap</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">info_dict</em>, <em class=\"sig-param\">priority<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">changefreq<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">protocol<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.GenericSitemap\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.contrib.sitemaps.GenericSitemap\" title=\"django.contrib.sitemaps.GenericSitemap\"><code class=\"xref py py-class docutils literal notranslate\">django.contrib.sitemaps.GenericSitemap</code></a> class allows you to\ncreate a sitemap by passing it a dictionary which has to contain at least\na <code class=\"docutils literal notranslate\">queryset</code> entry. This queryset will be used to generate the items\nof the sitemap. It may also have a <code class=\"docutils literal notranslate\">date_field</code> entry that\nspecifies a date field for objects retrieved from the <code class=\"docutils literal notranslate\">queryset</code>.\nThis will be used for the <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.lastmod\" title=\"django.contrib.sitemaps.Sitemap.lastmod\"><code class=\"xref py py-attr docutils literal notranslate\">lastmod</code></a> attribute and\n<a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.get_latest_lastmod\" title=\"django.contrib.sitemaps.Sitemap.get_latest_lastmod\"><code class=\"xref py py-meth docutils literal notranslate\">get_latest_lastmod()</code></a> methods in the generated sitemap.</p>\n<p>Les paramètres nommés <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.priority\" title=\"django.contrib.sitemaps.Sitemap.priority\"><code class=\"xref py py-attr docutils literal notranslate\">priority</code></a>, <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.changefreq\" title=\"django.contrib.sitemaps.Sitemap.changefreq\"><code class=\"xref py py-attr docutils literal notranslate\">changefreq</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.protocol\" title=\"django.contrib.sitemaps.Sitemap.protocol\"><code class=\"xref py py-attr docutils literal notranslate\">protocol</code></a> permettent de définir ces attributs pour toutes les URL.</p>\n</dd></dl>\n\n<section id=\"example\">\n<h3>Exemple<a class=\"heading-anchor\" href=\"#example\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Voici un exemple de <a class=\"reference internal\" href=\"/fr/6.0/topics/http/urls/\"><span class=\"doc\">configuration d’URL</span></a> utilisant <a class=\"reference internal\" href=\"#django.contrib.sitemaps.GenericSitemap\" title=\"django.contrib.sitemaps.GenericSitemap\"><code class=\"xref py py-class docutils literal notranslate\">GenericSitemap</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=\"kn\">from</span> <span class=\"nn\">django.contrib.sitemaps</span> <span class=\"kn\">import</span> GenericSitemap\n<span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sitemaps.views</span> <span class=\"kn\">import</span> sitemap\n<span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n<span class=\"kn\">from</span> <span class=\"nn\">blog.models</span> <span class=\"kn\">import</span> Entry\n\ninfo_dict <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;queryset&quot;</span><span class=\"p\">:</span> Entry<span class=\"o\">.</span>objects<span class=\"o\">.</span>all<span class=\"p\">(),</span>\n    <span class=\"s2\">&quot;date_field&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;pub_date&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">}</span>\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># some generic view using info_dict</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"c1\"># the sitemap</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;sitemap.xml&quot;</span><span class=\"p\">,</span>\n        sitemap<span class=\"p\">,</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;blog&quot;</span><span class=\"p\">:</span> GenericSitemap<span class=\"p\">(</span>info_dict<span class=\"p\">,</span> priority<span class=\"o\">=</span><span class=\"mf\">0.6</span><span class=\"p\">)}},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.sitemap&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"sitemap-for-static-views\">\n<h2>Plan de site pour les vues statiques<a class=\"heading-anchor\" href=\"#sitemap-for-static-views\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Il peut souvent être nécessaire de faire indexer par les robots des moteurs de recherche des vues qui ne sont ni des pages de détail d’un objet, ni des pages statiques. La solution est de fournir une liste explicite de noms d’URL pour ces vues dans <code class=\"docutils literal notranslate\">items</code> et d’appeler <a class=\"reference internal\" href=\"/fr/6.0/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a> dans la méthode <code class=\"docutils literal notranslate\">location</code> du sitemap. Par exemple :</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=\"c1\"># sitemaps.py</span>\n<span class=\"kn\">from</span> <span class=\"nn\">django.contrib</span> <span class=\"kn\">import</span> sitemaps\n<span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> reverse\n\n\n<span class=\"k\">class</span> <span class=\"nc\">StaticViewSitemap</span><span class=\"p\">(</span>sitemaps<span class=\"o\">.</span>Sitemap<span class=\"p\">):</span>\n    priority <span class=\"o\">=</span> <span class=\"mf\">0.5</span>\n    changefreq <span class=\"o\">=</span> <span class=\"s2\">&quot;daily&quot;</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s2\">&quot;main&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;about&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;license&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">location</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> item<span class=\"p\">):</span>\n        <span class=\"k\">return</span> reverse<span class=\"p\">(</span>item<span class=\"p\">)</span>\n\n\n<span class=\"c1\"># urls.py</span>\n<span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sitemaps.views</span> <span class=\"kn\">import</span> sitemap\n<span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n\n<span class=\"kn\">from</span> <span class=\"nn\">.sitemaps</span> <span class=\"kn\">import</span> StaticViewSitemap\n<span class=\"kn\">from</span> <span class=\"nn\">.</span> <span class=\"kn\">import</span> views\n\nsitemaps <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;static&quot;</span><span class=\"p\">:</span> StaticViewSitemap<span class=\"p\">,</span>\n<span class=\"p\">}</span>\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>main<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;main&quot;</span><span class=\"p\">),</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;about/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>about<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;about&quot;</span><span class=\"p\">),</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;license/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>license<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;license&quot;</span><span class=\"p\">),</span>\n    <span class=\"c1\"># ...</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;sitemap.xml&quot;</span><span class=\"p\">,</span>\n        sitemap<span class=\"p\">,</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.sitemap&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"creating-a-sitemap-index\">\n<h2>Création d’un index de plan de site<a class=\"heading-anchor\" href=\"#creating-a-sitemap-index\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sitemaps.views.index\">\n<span class=\"sig-prename descclassname\">views.</span><span class=\"sig-name descname\">index</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\">sitemaps</em>, <em class=\"sig-param\">template_name<span class=\"o\">=</span><span class=\"default_value\">'sitemap_index.xml'</span></em>, <em class=\"sig-param\">content_type<span class=\"o\">=</span><span class=\"default_value\">'application/xml'</span></em>, <em class=\"sig-param\">sitemap_url_name<span class=\"o\">=</span><span class=\"default_value\">'django.contrib.sitemaps.views.sitemap'</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sitemaps.views.index\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Le système sitemap a également la possibilité de créer un index de plan de site qui référence des fichiers sitemap individuels, un pour chaque section définie dans le dictionnaire <code class=\"docutils literal notranslate\">sitemaps</code>. Les seules différences dans l’utilisation sont les suivantes :</p>\n<ul class=\"simple\">\n<li><p>Vous utilisez deux vues dans la configuration d’URL : <a class=\"reference internal\" href=\"#django.contrib.sitemaps.views.index\" title=\"django.contrib.sitemaps.views.index\"><code class=\"xref py py-func docutils literal notranslate\">django.contrib.sitemaps.views.index()</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.views.sitemap\" title=\"django.contrib.sitemaps.views.sitemap\"><code class=\"xref py py-func docutils literal notranslate\">django.contrib.sitemaps.views.sitemap()</code></a>.</p></li>\n<li><p>La vue <a class=\"reference internal\" href=\"#django.contrib.sitemaps.views.sitemap\" title=\"django.contrib.sitemaps.views.sitemap\"><code class=\"xref py py-func docutils literal notranslate\">django.contrib.sitemaps.views.sitemap()</code></a> doit accepter un paramètre nommé <code class=\"docutils literal notranslate\">section</code>.</p></li>\n</ul>\n<p>Voici à quoi ressembleraient les lignes appropriées de la configuration d’URL pour l’exemple ci-dessus :</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=\"nn\">django.contrib.sitemaps</span> <span class=\"kn\">import</span> views\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;sitemap.xml&quot;</span><span class=\"p\">,</span>\n        views<span class=\"o\">.</span>index<span class=\"p\">,</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.index&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;sitemap-&lt;section&gt;.xml&quot;</span><span class=\"p\">,</span>\n        views<span class=\"o\">.</span>sitemap<span class=\"p\">,</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.sitemap&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Cela générera automatiquement un fichier <code class=\"file docutils literal notranslate\">sitemap.xml</code> faisant référence à la fois à <code class=\"file docutils literal notranslate\">sitemap-flatpages.xml</code> et à <code class=\"file docutils literal notranslate\">sitemap-blog.xml</code>. Les classes <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a> et le dictionnaire <code class=\"docutils literal notranslate\">sitemaps</code> ne changent aucunement.</p>\n<p>Si tous les plans de site possèdent un <code class=\"docutils literal notranslate\">lastmod</code> renvoyé par  <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.get_latest_lastmod\" title=\"django.contrib.sitemaps.Sitemap.get_latest_lastmod\"><code class=\"xref py py-meth docutils literal notranslate\">get_latest_lastmod()</code></a>, l’index de plan de site contiendra un en-tête <code class=\"docutils literal notranslate\">Last-Modified</code> égal au <code class=\"docutils literal notranslate\">lastmod</code> le plus récent.</p>\n<p>Vous devriez créer un fichier d’index lorsqu’un plan de site contient plus de 50 000 URL. Dans ce cas, Django pagine automatiquement le plan du site et l’index reflétera cette situation.</p>\n<p>Si vous n’utilisez pas la vue sitemap ordinaire – par exemple, si elle est enveloppée par un décorateur de mise en cache – vous devez nommer votre vue sitemap et passer <code class=\"docutils literal notranslate\">sitemap_url_name</code> à la vue d’index :</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=\"nn\">django.contrib.sitemaps</span> <span class=\"kn\">import</span> views <span class=\"k\">as</span> sitemaps_views\n<span class=\"kn\">from</span> <span class=\"nn\">django.views.decorators.cache</span> <span class=\"kn\">import</span> cache_page\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;sitemap.xml&quot;</span><span class=\"p\">,</span>\n        cache_page<span class=\"p\">(</span><span class=\"mi\">86400</span><span class=\"p\">)(</span>sitemaps_views<span class=\"o\">.</span>index<span class=\"p\">),</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">,</span> <span class=\"s2\">&quot;sitemap_url_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">),</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;sitemap-&lt;section&gt;.xml&quot;</span><span class=\"p\">,</span>\n        cache_page<span class=\"p\">(</span><span class=\"mi\">86400</span><span class=\"p\">)(</span>sitemaps_views<span class=\"o\">.</span>sitemap<span class=\"p\">),</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"template-customization\">\n<h2>Personnalisation de gabarit<a class=\"heading-anchor\" href=\"#template-customization\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Si vous souhaitez utiliser un gabarit différent pour chaque plan de site ou d’index de plan de site disponible sur un site, vous pouvez l’indiquer en passant un paramètre <code class=\"docutils literal notranslate\">template_name</code> aux vues <code class=\"docutils literal notranslate\">sitemap</code> et <code class=\"docutils literal notranslate\">index</code> via la configuration d’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=\"kn\">from</span> <span class=\"nn\">django.contrib.sitemaps</span> <span class=\"kn\">import</span> views\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;custom-sitemap.xml&quot;</span><span class=\"p\">,</span>\n        views<span class=\"o\">.</span>index<span class=\"p\">,</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">,</span> <span class=\"s2\">&quot;template_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;custom_sitemap.html&quot;</span><span class=\"p\">},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.index&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n    path<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;custom-sitemap-&lt;section&gt;.xml&quot;</span><span class=\"p\">,</span>\n        views<span class=\"o\">.</span>sitemap<span class=\"p\">,</span>\n        <span class=\"p\">{</span><span class=\"s2\">&quot;sitemaps&quot;</span><span class=\"p\">:</span> sitemaps<span class=\"p\">,</span> <span class=\"s2\">&quot;template_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;custom_sitemap.html&quot;</span><span class=\"p\">},</span>\n        name<span class=\"o\">=</span><span class=\"s2\">&quot;django.contrib.sitemaps.views.sitemap&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Ces vues renvoient des instances <a class=\"reference internal\" href=\"/fr/6.0/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\">TemplateResponse</code></a> permettant de personnaliser facilement les données de réponse avant le processus de rendu. Pour plus de détails, consultez la <a class=\"reference internal\" href=\"/fr/6.0/ref/template-response/\"><span class=\"doc\">documentation de TemplateResponse</span></a>.</p>\n<section id=\"context-variables\">\n<h3>Variables de contexte<a class=\"heading-anchor\" href=\"#context-variables\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Lors de la personnalisation des gabarits pour les vues <a class=\"reference internal\" href=\"#django.contrib.sitemaps.views.index\" title=\"django.contrib.sitemaps.views.index\"><code class=\"xref py py-func docutils literal notranslate\">index()</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.views.sitemap\" title=\"django.contrib.sitemaps.views.sitemap\"><code class=\"xref py py-func docutils literal notranslate\">sitemap()</code></a>, vous pouvez compter sur les variables de contexte suivantes.</p>\n</section>\n<section id=\"index\">\n<span id=\"sitemap-index-context-variables\"></span><h3>Accueil<a class=\"heading-anchor\" href=\"#index\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>La variable <code class=\"docutils literal notranslate\">sitemaps</code> est une liste d’objets contenant les attributs <code class=\"docutils literal notranslate\">location</code> et <code class=\"docutils literal notranslate\">lastmod</code> pour chaque plan de site. Chaque URL expose les attributs suivants :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">location</code>: l’emplacement (URL et page) du plan de site.</p></li>\n<li><p><code class=\"docutils literal notranslate\">lastmod</code>: rempli par la méthode <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.get_latest_lastmod\" title=\"django.contrib.sitemaps.Sitemap.get_latest_lastmod\"><code class=\"xref py py-meth docutils literal notranslate\">get_latest_lastmod()</code></a> pour chaque plan de site.</p></li>\n</ul>\n</section>\n<section id=\"id1\">\n<h3>Sitemap<a class=\"heading-anchor\" href=\"#id1\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>La variable <code class=\"docutils literal notranslate\">urlset</code> est une liste d’URL devant apparaître dans le plan du site. Chaque URL expose des attributs tels que définis dans la classe <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap\" title=\"django.contrib.sitemaps.Sitemap\"><code class=\"xref py py-class docutils literal notranslate\">Sitemap</code></a>:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">alternates</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">changefreq</code> (fréquence de modification)</p></li>\n<li><p><code class=\"docutils literal notranslate\">item</code> (élément)</p></li>\n<li><p><code class=\"docutils literal notranslate\">lastmod</code> (date de dernière modification)</p></li>\n<li><p><code class=\"docutils literal notranslate\">location</code> (adresse)</p></li>\n<li><p><code class=\"docutils literal notranslate\">priority</code> (priorité)</p></li>\n</ul>\n<p>L’attribut <code class=\"docutils literal notranslate\">alternates</code> est disponible lorsque  <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.i18n\" title=\"django.contrib.sitemaps.Sitemap.i18n\"><code class=\"xref py py-attr docutils literal notranslate\">i18n</code></a> et <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.alternates\" title=\"django.contrib.sitemaps.Sitemap.alternates\"><code class=\"xref py py-attr docutils literal notranslate\">alternates</code></a> sont activés. Il s’agit d’une liste d’autres versions linguistiques, y compris la valeur par défaut facultative <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.x_default\" title=\"django.contrib.sitemaps.Sitemap.x_default\"><code class=\"xref py py-attr docutils literal notranslate\">x_default</code></a>, pour chaque URL. Chaque <code class=\"docutils literal notranslate\">alternate</code> est un dictionnaire avec les clés <code class=\"docutils literal notranslate\">location</code> et <code class=\"docutils literal notranslate\">lang_code</code>.</p>\n<p>L’attribut <code class=\"docutils literal notranslate\">item</code> a été ajouté pour chaque URL afin de permettre une personnalisation plus souple des gabarits, comme pour les <a class=\"reference external\" href=\"https://support.google.com/news/publisher-center/answer/9606710\">Google news sitemaps</a>. En supposant que <a class=\"reference internal\" href=\"#django.contrib.sitemaps.Sitemap.items\" title=\"django.contrib.sitemaps.Sitemap.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a> de <code class=\"docutils literal notranslate\">Sitemap</code> renvoie une liste d’éléments avec des champs <code class=\"docutils literal notranslate\">publication_date</code> et <code class=\"docutils literal notranslate\">tags</code>, le code ci-dessous devrait générer un plan de site compatible avec Google News :</p>\n<div class=\"code-block\" data-language=\"xml+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Xml Django</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=\"Xml Django code\"><code><span class=\"cp\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>\n<span class=\"nt\">&lt;urlset</span>\n  <span class=\"na\">xmlns=</span><span class=\"s\">&quot;https://www.sitemaps.org/schemas/sitemap/0.9&quot;</span>\n  <span class=\"na\">xmlns:news=</span><span class=\"s\">&quot;https://www.google.com/schemas/sitemap-news/0.9&quot;</span><span class=\"nt\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">spaceless</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">url</span> <span class=\"k\">in</span> <span class=\"nv\">urlset</span> <span class=\"cp\">%}</span>\n  <span class=\"nt\">&lt;url&gt;</span>\n    <span class=\"nt\">&lt;loc&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">url.location</span> <span class=\"cp\">}}</span><span class=\"nt\">&lt;/loc&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">url.lastmod</span> <span class=\"cp\">%}</span><span class=\"nt\">&lt;lastmod&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">url.lastmod</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;Y-m-d&quot;</span> <span class=\"cp\">}}</span><span class=\"nt\">&lt;/lastmod&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">url.changefreq</span> <span class=\"cp\">%}</span><span class=\"nt\">&lt;changefreq&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">url.changefreq</span> <span class=\"cp\">}}</span><span class=\"nt\">&lt;/changefreq&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">url.priority</span> <span class=\"cp\">%}</span><span class=\"nt\">&lt;priority&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">url.priority</span> <span class=\"cp\">}}</span><span class=\"nt\">&lt;/priority&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"nt\">&lt;news:news&gt;</span>\n      <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">url.item.publication_date</span> <span class=\"cp\">%}</span><span class=\"nt\">&lt;news:publication_date&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">url.item.publication_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;Y-m-d&quot;</span> <span class=\"cp\">}}</span><span class=\"nt\">&lt;/news:publication_date&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n      <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">url.item.tags</span> <span class=\"cp\">%}</span><span class=\"nt\">&lt;news:keywords&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">url.item.tags</span> <span class=\"cp\">}}</span><span class=\"nt\">&lt;/news:keywords&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"nt\">&lt;/news:news&gt;</span>\n   <span class=\"nt\">&lt;/url&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endspaceless</span> <span class=\"cp\">%}</span>\n<span class=\"nt\">&lt;/urlset&gt;</span>\n</code></pre></div>\n</section>\n</section>","rootId":"module-django.contrib.sitemaps","toc":[{"title":"Aperçu","anchor":"overview","children":[]},{"title":"Installation","anchor":"installation","children":[]},{"title":"Initialisation","anchor":"initialization","children":[]},{"title":"Classes Sitemap","anchor":"sitemap-classes","children":[]},{"title":"Un exemple","anchor":"an-example","children":[]},{"title":"Référence de la classe Sitemap","anchor":"sitemap-class-reference","children":[]},{"title":"Raccourcis","anchor":"shortcuts","children":[{"title":"Exemple","anchor":"example","children":[]}]},{"title":"Plan de site pour les vues statiques","anchor":"sitemap-for-static-views","children":[]},{"title":"Création d’un index de plan de site","anchor":"creating-a-sitemap-index","children":[]},{"title":"Personnalisation de gabarit","anchor":"template-customization","children":[{"title":"Variables de contexte","anchor":"context-variables","children":[]},{"title":"Accueil","anchor":"index","children":[]},{"title":"Sitemap","anchor":"id1","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/6.0/ref/"},{"docname":"ref/contrib/index","title":"Paquets contrib","url":"/fr/6.0/ref/contrib/"}],"prev":{"docname":"ref/contrib/redirects","title":"L’application de redirection","url":"/fr/6.0/ref/contrib/redirects/"},"next":{"docname":"ref/contrib/sites","title":"L’infrastructure des « sites »","url":"/fr/6.0/ref/contrib/sites/"},"formats":{"html":"/fr/6.0/ref/contrib/sitemaps/","markdown":"/fr/6.0/ref/contrib/sitemaps.md","json":"/fr/6.0/ref/contrib/sitemaps.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/contrib/sitemaps.txt","official":"https://docs.djangoproject.com/fr/6.0/ref/contrib/sitemaps/","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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}