{"title":"Fonctions utilitaires django.urls","version":"2.2","locale":"fr","docname":"ref/urlresolvers","url":"/fr/2.2/ref/urlresolvers/","canonical":"https://djangodocs.dev/fr/2.2/ref/urlresolvers/","summary":"reverse() Lien vers cette rubrique # Si vous avez besoin d’utiliser quelque chose de semblable à la balise de gabarit url dans votre code, Django fournit la…","html":"<span id=\"django-urls-utility-functions\"></span><h1>Fonctions utilitaires <code class=\"docutils literal notranslate\"><span class=\"pre\">django.urls</span></code><a class=\"heading-anchor\" href=\"#module-django.urls\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"reverse\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">reverse()</span></code><a class=\"heading-anchor\" href=\"#reverse\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Si vous avez besoin d’utiliser quelque chose de semblable à la balise de gabarit <a class=\"reference internal\" href=\"/fr/2.2/ref/templates/builtins/#std-templatetag-url\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">url</span></code></a> dans votre code, Django fournit la fonction suivante :</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.reverse\">\n<span class=\"sig-name descname\"><span class=\"pre\">reverse</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">viewname</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">urlconf</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">args</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">kwargs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">current_app</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.reverse\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">viewname</span></code> peut être un <a class=\"reference internal\" href=\"/fr/2.2/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">nom de motif d’URL</span></a> ou l’objet de vue lui-même. Par exemple, étant donné l”<code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> suivante :</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\">news</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span>\n\n<span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s1\">&#39;archive/&#39;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">archive</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;news-archive&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>vous pouvez utiliser indifféremment les appels suivants pour obtenir l’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=\"c1\"># using the named URL</span>\n<span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;news-archive&#39;</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># passing a callable object</span>\n<span class=\"c1\"># (This is discouraged because you can&#39;t reverse namespaced views this way.)</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">news</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span>\n<span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">archive</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Si l’URL accepte des paramètres, vous pouvez les transmettre dans <code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code>. 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=\"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\">reverse</span>\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">myview</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponseRedirect</span><span class=\"p\">(</span><span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;arch-summary&#39;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"mi\">1945</span><span class=\"p\">]))</span>\n</code></pre></div>\n<p>Vous pouvez aussi transmettre <code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs</span></code> au lieu de <code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code>. 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=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;admin:app_list&#39;</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;app_label&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;auth&#39;</span><span class=\"p\">})</span>\n<span class=\"go\">&#39;/admin/auth/&#39;</span>\n</code></pre></div>\n<p>Il n’est pas possible de passer à la fois <code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs</span></code> à <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse()</span></code>.</p>\n<p>Si aucune correspondance n’est trouvée, <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse()</span></code> génère une exception <a class=\"reference internal\" href=\"/fr/2.2/ref/exceptions/#django.urls.NoReverseMatch\" title=\"django.urls.NoReverseMatch\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NoReverseMatch</span></code></a>.</p>\n<p>La fonction <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse()</span></code> peut résoudre une large palette de motifs d’expressions régulières correspondant à des URL, mais pas tous. La principale restriction actuellement est que le motif ne peut pas contenir différents choix possibles indiqués par la barre verticale (<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;|&quot;</span></code>). De tels motifs peuvent sans problème être utilisés pour résoudre des URL entrantes et faire appel à la vue correspondante, mais il n’est pas possible de les utiliser pour effectuer des résolutions inverses.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> vous permet de donner une indication au résolveur pour signaler l’application à laquelle appartient la vue en cours d’exécution. Ce paramètre  <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> est employé comme indication pour résoudre des espaces de noms d’application en URL d’instances spécifiques d’application, en accord avec la <a class=\"reference internal\" href=\"/fr/2.2/topics/http/urls/#topics-http-reversing-url-namespaces\"><span class=\"std std-ref\">stratégie de résolution d’URL avec espaces de noms</span></a>.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">urlconf</span></code> est le module de configuration d’URL contenant les motifs d’URL à utiliser pour la résolution. Par défaut, la configuration d’URL racine du fil d’exécution en cours est utilisée.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>La chaîne d’URL renvoyée par <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse()</span></code> est déjà <a class=\"reference internal\" href=\"/fr/2.2/ref/unicode/#uri-and-iri-handling\"><span class=\"std std-ref\">échappée</span></a>. 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=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s1\">&#39;cities&#39;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;Orléans&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&#39;.../Orl%C3%A9ans/&#39;</span>\n</code></pre></div>\n<p>Si vous appliquez d’autres codages (tel que <a class=\"reference external\" href=\"https://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">urllib.parse.quote()</span></code></a>) à la valeur renvoyée par <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse()</span></code>, cela peut produire des résultats non désirés.</p>\n</aside>\n</section>\n<section id=\"reverse-lazy\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">reverse_lazy()</span></code><a class=\"heading-anchor\" href=\"#reverse-lazy\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Une version de <a class=\"reference internal\" href=\"#reverse\">reverse()</a> à exécution différée.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.reverse_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">reverse_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">viewname</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">urlconf</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">args</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">kwargs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">current_app</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.reverse_lazy\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Cette fonction est utile lorsque vous avez besoin de procéder à une résolution d’URL avant le chargement de la configuration des URL. Voici quelques cas fréquents d’utilisation de cette fonction :</p>\n<ul class=\"simple\">\n<li><p>attribution d’une URL inversée comme attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> d’une vue générique fondée sur les classes.</p></li>\n<li><p>attribution d’une URL inversée à un décorateur (comme pour le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code> du décorateur <a class=\"reference internal\" href=\"/fr/2.2/topics/auth/default/#django.contrib.auth.decorators.permission_required\" title=\"django.contrib.auth.decorators.permission_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.decorators.permission_required()</span></code></a>).</p></li>\n<li><p>attribution d’une URL inversée comme valeur par défaut d’un paramètre dans une signature de fonction.</p></li>\n</ul>\n</section>\n<section id=\"resolve\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">resolve()</span></code><a class=\"heading-anchor\" href=\"#resolve\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>La fonction <code class=\"docutils literal notranslate\"><span class=\"pre\">resolve()</span></code> peut être utilisée pour résoudre un chemin d’URL en sa fonction de vue correspondante. Sa signature est la suivante :</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.resolve\">\n<span class=\"sig-name descname\"><span class=\"pre\">resolve</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">urlconf</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.resolve\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> est le chemin d’URL à résoudre. Comme pour <a class=\"reference internal\" href=\"#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a>, il n’y a pas besoin de se préoccuper du paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">urlconf</span></code>. La focntion renvoie un objet <a class=\"reference internal\" href=\"#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ResolverMatch</span></code></a> permettant d’accéder à diverses métadonnées au sujet de l’URL résolue.</p>\n<p>Si l’URL n’est pas résolue, la fonction génère l’exception <a class=\"reference internal\" href=\"/fr/2.2/ref/exceptions/#django.urls.Resolver404\" title=\"django.urls.Resolver404\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">Resolver404</span></code></a> (qui est une sous-classe de <a class=\"reference internal\" href=\"/fr/2.2/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Http404</span></code></a>).</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ResolverMatch</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.func\">\n<span class=\"sig-name descname\"><span class=\"pre\">func</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.func\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La fonction de vue qui aurait été utilisée pour servir l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.args\">\n<span class=\"sig-name descname\"><span class=\"pre\">args</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.args\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les paramètres qui auraient été transmis à la fonction de vue, tels qu’ils ont été extraits de l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.kwargs\">\n<span class=\"sig-name descname\"><span class=\"pre\">kwargs</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.kwargs\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les paramètres nommés qui auraient été transmis à la fonction de vue, tels qu’ils ont été extraits de l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.url_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">url_name</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.url_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom du motif d’URL correspondant à l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.route\">\n<span class=\"sig-name descname\"><span class=\"pre\">route</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.route\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"2.2\">\n<p class=\"version-note-title\">New in Django 2.2</p></aside>\n<p>La route du motif d’URL correspondant.</p>\n<p>Par exemple, si <code class=\"docutils literal notranslate\"><span class=\"pre\">path('users/&lt;id&gt;/',</span> <span class=\"pre\">...)</span></code> set le motif de correspondance, <code class=\"docutils literal notranslate\"><span class=\"pre\">route</span></code> contiendra <code class=\"docutils literal notranslate\"><span class=\"pre\">'users/&lt;id&gt;/'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.app_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">app_name</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.app_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>L’espace de noms d’application pour le motif d’URL correspondant à l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.app_names\">\n<span class=\"sig-name descname\"><span class=\"pre\">app_names</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.app_names\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La liste des composants d’espace de noms individuels dans l’espace de noms d’application complet du motif d’URL correspondant à l’URL. Si par exemple <code class=\"docutils literal notranslate\"><span class=\"pre\">app_name</span></code> contient <code class=\"docutils literal notranslate\"><span class=\"pre\">foo:bar</span></code>, alors <code class=\"docutils literal notranslate\"><span class=\"pre\">app_names</span></code> contiendra <code class=\"docutils literal notranslate\"><span class=\"pre\">['foo',</span> <span class=\"pre\">'bar']</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.namespace\">\n<span class=\"sig-name descname\"><span class=\"pre\">namespace</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.namespace\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>L’espace de noms d’instance pour le motif d’URL correspondant à l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.namespaces\">\n<span class=\"sig-name descname\"><span class=\"pre\">namespaces</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.namespaces\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La liste des composants d’espace de noms individuels dans l’espace de noms d’instance complet du motif d’URL correspondant à l’URL. Si par exemple l’espace de noms est <code class=\"docutils literal notranslate\"><span class=\"pre\">foo:bar</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">namespaces</span></code> contiendra <code class=\"docutils literal notranslate\"><span class=\"pre\">['foo',</span> <span class=\"pre\">'bar']</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.view_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">view_name</span></span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.view_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom de la vue qui correspond à l’URL, y compris l’espace de noms s’il y en a un.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>Un objet <a class=\"reference internal\" href=\"#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ResolverMatch</span></code></a> peut ensuite être interrogé pour fournir des informations au sujet du motif d’URL correspondant à une 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=\"c1\"># Resolve a URL</span>\n<span class=\"n\">match</span> <span class=\"o\">=</span> <span class=\"n\">resolve</span><span class=\"p\">(</span><span class=\"s1\">&#39;/some/path/&#39;</span><span class=\"p\">)</span>\n<span class=\"c1\"># Print the URL pattern that matches the URL</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">match</span><span class=\"o\">.</span><span class=\"n\">url_name</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Un objet <a class=\"reference internal\" href=\"#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ResolverMatch</span></code></a> peut aussi être attribué à une triplette :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">func</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span> <span class=\"o\">=</span> <span class=\"n\">resolve</span><span class=\"p\">(</span><span class=\"s1\">&#39;/some/path/&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>L’une des utilisations possibles de <a class=\"reference internal\" href=\"#django.urls.resolve\" title=\"django.urls.resolve\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">resolve()</span></code></a> pourrait être de tester si une vue produit une erreur <code class=\"docutils literal notranslate\"><span class=\"pre\">Http404</span></code> avant de l’utiliser comme cible de redirection :</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\">urllib.parse</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">urlparse</span>\n<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\">resolve</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Http404</span><span class=\"p\">,</span> <span class=\"n\">HttpResponseRedirect</span>\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">myview</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"nb\">next</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">META</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s1\">&#39;HTTP_REFERER&#39;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"s1\">&#39;/&#39;</span>\n    <span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponseRedirect</span><span class=\"p\">(</span><span class=\"nb\">next</span><span class=\"p\">)</span>\n\n    <span class=\"c1\"># modify the request and response as required, e.g. change locale</span>\n    <span class=\"c1\"># and set corresponding locale cookie</span>\n\n    <span class=\"n\">view</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span> <span class=\"o\">=</span> <span class=\"n\">resolve</span><span class=\"p\">(</span><span class=\"n\">urlparse</span><span class=\"p\">(</span><span class=\"nb\">next</span><span class=\"p\">)[</span><span class=\"mi\">2</span><span class=\"p\">])</span>\n    <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s1\">&#39;request&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">request</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        <span class=\"n\">view</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n    <span class=\"k\">except</span> <span class=\"n\">Http404</span><span class=\"p\">:</span>\n        <span class=\"k\">return</span> <span class=\"n\">HttpResponseRedirect</span><span class=\"p\">(</span><span class=\"s1\">&#39;/&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">response</span>\n</code></pre></div>\n</section>\n<section id=\"get-script-prefix\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">get_script_prefix()</span></code><a class=\"heading-anchor\" href=\"#get-script-prefix\"><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.urls.get_script_prefix\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_script_prefix</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.get_script_prefix\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Normalement, vous devriez toujours utiliser <a class=\"reference internal\" href=\"#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a> pour définir des URL dans votre application. Cependant, si l’application construit elle-même une partie de la hiérarchie des URL, il peut parfois être utile de produire soi-même des URL. Dans ce cas, il est nécessaire de pouvoir connaître l’URL de base du projet Django dans le contexte du serveur Web (<a class=\"reference internal\" href=\"#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a> s’occupe en principe de le faire à votre place). Dans ce cas, vous pouvez appeler <code class=\"docutils literal notranslate\"><span class=\"pre\">get_script_prefix()</span></code>, qui renvoie la portion de préfixe de script des URL du projet Django. Si ce projet est placé à la racine de son serveur Web, la valeur est toujours <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/&quot;</span></code>.</p>\n</section>","rootId":"module-django.urls","toc":[{"title":"reverse()","anchor":"reverse","children":[]},{"title":"reverse_lazy()","anchor":"reverse-lazy","children":[]},{"title":"resolve()","anchor":"resolve","children":[]},{"title":"get_script_prefix()","anchor":"get-script-prefix","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/2.2/ref/"}],"prev":{"docname":"ref/unicode","title":"Données Unicode","url":"/fr/2.2/ref/unicode/"},"next":{"docname":"ref/urls","title":"Fonctions django.urls à utiliser dans les configurations d’URL","url":"/fr/2.2/ref/urls/"},"formats":{"html":"/fr/2.2/ref/urlresolvers/","markdown":"/fr/2.2/ref/urlresolvers.md","json":"/fr/2.2/ref/urlresolvers.json"},"source":"https://github.com/django/django/blob/stable/2.2.x/docs/ref/urlresolvers.txt","official":"https://docs.djangoproject.com/fr/2.2/ref/urlresolvers/","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","pt-br","ko","es","el","pl"]}