{"title":"Fonctions utilitaires django.core.urlresolvers","version":"1.9","locale":"fr","docname":"ref/urlresolvers","url":"/fr/1.9/ref/urlresolvers/","canonical":"https://djangodocs.dev/fr/1.9/ref/urlresolvers/","summary":"Si vous avez besoin d’utiliser quelque chose de semblable à la balise de gabarit url dans votre code, Django fournit la fonction suivante.","html":"<span id=\"django-core-urlresolvers-utility-functions\"></span><h1>Fonctions utilitaires <code class=\"docutils literal notranslate\">django.core.urlresolvers</code><a class=\"heading-anchor\" href=\"#module-django.core.urlresolvers\"><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\">reverse()</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/1.9/ref/templates/builtins/#std-templatetag-url\"><code class=\"xref std std-ttag docutils literal notranslate\">url</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.core.urlresolvers.reverse\">\n<span class=\"sig-name descname\">reverse</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">viewname</em>, <em class=\"sig-param\">urlconf<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">args<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">kwargs<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">current_app<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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\">viewname</code> peut être une chaîne contenant le chemin Python vers l’objet de vue, un <a class=\"reference internal\" href=\"/fr/1.9/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\">url</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=\"nn\">news</span> <span class=\"kn\">import</span> views\n\nurl<span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s1\">&#39;^archive/$&#39;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>archive<span class=\"p\">,</span> name<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>\nreverse<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=\"nn\">news</span> <span class=\"kn\">import</span> views\nreverse<span class=\"p\">(</span>views<span class=\"o\">.</span>archive<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\">args</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=\"nn\">django.core.urlresolvers</span> <span class=\"kn\">import</span> reverse\n\n<span class=\"k\">def</span> <span class=\"nf\">myview</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"k\">return</span> HttpResponseRedirect<span class=\"p\">(</span>reverse<span class=\"p\">(</span><span class=\"s1\">&#39;arch-summary&#39;</span><span class=\"p\">,</span> args<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\">kwargs</code> au lieu de <code class=\"docutils literal notranslate\">args</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>reverse<span class=\"p\">(</span><span class=\"s1\">&#39;admin:app_list&#39;</span><span class=\"p\">,</span> kwargs<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\">args</code> et <code class=\"docutils literal notranslate\">kwargs</code> à <code class=\"docutils literal notranslate\">reverse()</code>.</p>\n<p>Si aucune correspondance n’est trouvée, <code class=\"docutils literal notranslate\">reverse()</code> génère une exception <a class=\"reference internal\" href=\"/fr/1.9/ref/exceptions/#django.core.urlresolvers.NoReverseMatch\" title=\"django.core.urlresolvers.NoReverseMatch\"><code class=\"xref py py-class docutils literal notranslate\">NoReverseMatch</code></a>.</p>\n<p>La fonction <code class=\"docutils literal notranslate\">reverse()</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\">&quot;|&quot;</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\">current_app</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\">current_app</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/1.9/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>The <code class=\"docutils literal notranslate\">urlconf</code> argument is the URLconf module containing the URL patterns to\nuse for reversing. By default, the root URLconf for the current thread is used.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"1.8\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 1.8</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 1.8: </span>L’aptitude à résoudre les chemins Python, comme par exemple <code class=\"docutils literal notranslate\">reverse('news.views.archive')</code>, a été rendue obsolète.</p>\n</aside>\n<aside class=\"admonition-make-sure-your-views-are-all-correct admonition\" role=\"note\">\n<p class=\"admonition-title\">S’assurer que toutes les vues sont correctes</p>\n<p>Dans le processus de mise en correspondance des noms d’URL avec les motifs, la fonction <code class=\"docutils literal notranslate\">reverse()</code> doit importer tous les fichiers de configuration d’URL et examiner le nom de chaque vue. Cela implique d’importer chaque fonction de vue. Si une <em>seule</em> erreur se produit lors de l’importation des fonctions de vue, <code class=\"docutils literal notranslate\">reverse()</code> produira également une erreur, même si la fonction de vue problématique n’est pas celle que vous essayez de résoudre.</p>\n<p>Assurez-vous que toute vue référencée dans les fichiers de configuration d’URL existe et qu’elle peut être importée correctement. N’incluez pas de lignes référençant des vues qui n’ont pas encore été écrites, car ces vues ne pourront pas être importées.</p>\n</aside>\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\">reverse()</code> est déjà <a class=\"reference internal\" href=\"/fr/1.9/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>reverse<span class=\"p\">(</span><span class=\"s1\">&#39;cities&#39;</span><span class=\"p\">,</span> args<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 (tels que <a class=\"reference internal\" href=\"/fr/1.9/ref/utils/#django.utils.http.urlquote\" title=\"django.utils.http.urlquote\"><code class=\"xref py py-meth docutils literal notranslate\">urlquote()</code></a> ou <code class=\"docutils literal notranslate\">urllib.quote</code>) à la valeur renvoyée par <code class=\"docutils literal notranslate\">reverse()</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\">reverse_lazy()</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.core.urlresolvers.reverse_lazy\">\n<span class=\"sig-name descname\">reverse_lazy</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">viewname</em>, <em class=\"sig-param\">urlconf<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">args<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">kwargs<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">current_app<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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\">url</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\">login_url</code> du décorateur <a class=\"reference internal\" href=\"/fr/1.9/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\">django.contrib.auth.decorators.permission_required()</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\">resolve()</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\">resolve()</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.core.urlresolvers.resolve\">\n<span class=\"sig-name descname\">resolve</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">path</em>, <em class=\"sig-param\">urlconf<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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\">path</code> est le chemin d’URL à résoudre. Comme pour <a class=\"reference internal\" href=\"#django.core.urlresolvers.reverse\" title=\"django.core.urlresolvers.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a>, il n’y a pas besoin de se préoccuper du paramètre <code class=\"docutils literal notranslate\">urlconf</code>. La focntion renvoie un objet <a class=\"reference internal\" href=\"#django.core.urlresolvers.ResolverMatch\" title=\"django.core.urlresolvers.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</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/1.9/ref/exceptions/#django.core.urlresolvers.Resolver404\" title=\"django.core.urlresolvers.Resolver404\"><code class=\"xref py py-exc docutils literal notranslate\">Resolver404</code></a> (qui est une sous-classe de <a class=\"reference internal\" href=\"/fr/1.9/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-class docutils literal notranslate\">Http404</code></a>).</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.urlresolvers.ResolverMatch\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ResolverMatch</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.func\">\n<span class=\"sig-name descname\">func</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.args\">\n<span class=\"sig-name descname\">args</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.kwargs\">\n<span class=\"sig-name descname\">kwargs</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.url_name\">\n<span class=\"sig-name descname\">url_name</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.app_name\">\n<span class=\"sig-name descname\">app_name</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.app_names\">\n<span class=\"sig-name descname\">app_names</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.ResolverMatch.app_names\"><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=\"1.9\" role=\"note\">\n<p class=\"version-note-title\">New in Django 1.9</p></aside>\n<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\">app_name</code> contient <code class=\"docutils literal notranslate\">foo:bar</code>, alors <code class=\"docutils literal notranslate\">app_names</code> contiendra <code class=\"docutils literal notranslate\">['foo', 'bar']</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.urlresolvers.ResolverMatch.namespace\">\n<span class=\"sig-name descname\">namespace</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch.namespaces\">\n<span class=\"sig-name descname\">namespaces</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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\">foo:bar</code>, <code class=\"docutils literal notranslate\">namespaces</code> contiendra <code class=\"docutils literal notranslate\">['foo', 'bar']</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.urlresolvers.ResolverMatch.view_name\">\n<span class=\"sig-name descname\">view_name</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.ResolverMatch\" title=\"django.core.urlresolvers.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</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>\nmatch <span class=\"o\">=</span> resolve<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>match<span class=\"o\">.</span>url_name<span class=\"p\">)</span>\n</code></pre></div>\n<p>Un objet <a class=\"reference internal\" href=\"#django.core.urlresolvers.ResolverMatch\" title=\"django.core.urlresolvers.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</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>func<span class=\"p\">,</span> args<span class=\"p\">,</span> kwargs <span class=\"o\">=</span> resolve<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.core.urlresolvers.resolve\" title=\"django.core.urlresolvers.resolve\"><code class=\"xref py py-func docutils literal notranslate\">resolve()</code></a> pourrait être de tester si une vue produit une erreur <code class=\"docutils literal notranslate\">Http404</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=\"nn\">django.core.urlresolvers</span> <span class=\"kn\">import</span> resolve\n<span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> HttpResponseRedirect<span class=\"p\">,</span> Http404\n<span class=\"kn\">from</span> <span class=\"nn\">django.utils.six.moves.urllib.parse</span> <span class=\"kn\">import</span> urlparse\n\n<span class=\"k\">def</span> <span class=\"nf\">myview</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"nb\">next</span> <span class=\"o\">=</span> request<span class=\"o\">.</span>META<span class=\"o\">.</span>get<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    response <span class=\"o\">=</span> HttpResponseRedirect<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    view<span class=\"p\">,</span> args<span class=\"p\">,</span> kwargs <span class=\"o\">=</span> resolve<span class=\"p\">(</span>urlparse<span class=\"p\">(</span><span class=\"nb\">next</span><span class=\"p\">)[</span><span class=\"mi\">2</span><span class=\"p\">])</span>\n    kwargs<span class=\"p\">[</span><span class=\"s1\">&#39;request&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> request\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        view<span class=\"p\">(</span><span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">)</span>\n    <span class=\"k\">except</span> Http404<span class=\"p\">:</span>\n        <span class=\"k\">return</span> HttpResponseRedirect<span class=\"p\">(</span><span class=\"s1\">&#39;/&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> response\n</code></pre></div>\n</section>\n<section id=\"get-script-prefix\">\n<h2><code class=\"docutils literal notranslate\">get_script_prefix()</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.core.urlresolvers.get_script_prefix\">\n<span class=\"sig-name descname\">get_script_prefix</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.urlresolvers.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.core.urlresolvers.reverse\" title=\"django.core.urlresolvers.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</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.core.urlresolvers.reverse\" title=\"django.core.urlresolvers.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a> s’occupe en principe de le faire à votre place). Dans ce cas, vous pouvez appeler <code class=\"docutils literal notranslate\">get_script_prefix()</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\">&quot;/&quot;</code>.</p>\n</section>","rootId":"module-django.core.urlresolvers","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/1.9/ref/"}],"prev":{"docname":"ref/unicode","title":"Données Unicode","url":"/fr/1.9/ref/unicode/"},"next":{"docname":"ref/urls","title":"Fonctions utilitaires django.conf.urls","url":"/fr/1.9/ref/urls/"},"formats":{"html":"/fr/1.9/ref/urlresolvers/","markdown":"/fr/1.9/ref/urlresolvers.md","json":"/fr/1.9/ref/urlresolvers.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/ref/urlresolvers.txt","official":"https://docs.djangoproject.com/fr/1.9/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","fr","ja","id","pt-br","es"]}