{"title":"Les fonctions raccourcis de Django","version":"5.2","locale":"fr","docname":"topics/http/shortcuts","url":"/fr/5.2/topics/http/shortcuts/","canonical":"https://djangodocs.dev/fr/5.2/topics/http/shortcuts/","summary":"Le paquet django.shortcuts rassemble des fonctions et des classes utilitaires qui recouvrent plusieurs niveaux de l’architecture MVC. En d’autres termes, ces…","html":"<span id=\"django-shortcut-functions\"></span><h1>Les fonctions raccourcis de Django<a class=\"heading-anchor\" href=\"#module-django.shortcuts\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p id=\"index-0\">Le paquet <code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts</span></code> rassemble des fonctions et des classes utilitaires qui recouvrent plusieurs niveaux de l’architecture MVC. En d’autres termes, ces fonctions/classes introduisent un couplage contrôlé à des fins de commodité.</p>\n<section id=\"render\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">render()</span></code><a class=\"heading-anchor\" href=\"#render\"><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.shortcuts.render\">\n<span class=\"sig-name descname\"><span class=\"pre\">render</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">template_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</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\">content_type</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\">status</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\">using</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.shortcuts.render\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Combine un gabarit donné avec un dictionnaire contexte donné et renvoie un objet <a class=\"reference internal\" href=\"/fr/5.2/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> avec le texte résultant.</p>\n<p>Django ne met pas à disposition de fonction raccourci renvoyant une réponse <a class=\"reference internal\" href=\"/fr/5.2/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a> parce que le constructeur de <a class=\"reference internal\" href=\"/fr/5.2/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a> présente le même niveau de flexibilité que <a class=\"reference internal\" href=\"#django.shortcuts.render\" title=\"django.shortcuts.render\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">render()</span></code></a>.</p>\n</dd></dl>\n\n<section id=\"required-arguments\">\n<h3>Paramètres obligatoires<a class=\"heading-anchor\" href=\"#required-arguments\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code></dt><dd><p>L’objet requête utilisé pour générer la réponse.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code></dt><dd><p>Le nom complet d’un gabarit à utiliser ou une liste de noms de gabarits. Si une liste est donnée, le premier gabarit de la liste qui est trouvé sera utilisé. Consultez la <a class=\"reference internal\" href=\"/fr/5.2/topics/templates/#template-loading\"><span class=\"std std-ref\">documentation du chargement de gabarits</span></a> pour plus d’informations sur la façon dont les gabarits sont recherchés.</p>\n</dd>\n</dl>\n</section>\n<section id=\"optional-arguments\">\n<h3>Paramètres facultatifs<a class=\"heading-anchor\" href=\"#optional-arguments\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code></dt><dd><p>Un dictionnaire de valeurs à ajouter un contexte du gabarit. Par défaut, ce dictionnaire est vide. Si une des valeurs du dictionnaire est exécutable, la vue l’appellera immédiatement avant de faire le rendu du gabarit.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code></dt><dd><p>Le type MIME à utiliser pour le document produit. La valeur par défaut est <code class=\"docutils literal notranslate\"><span class=\"pre\">'text/html'</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">status</span></code></dt><dd><p>Le code d’état de la réponse. La valeur par défaut est <code class=\"docutils literal notranslate\"><span class=\"pre\">200</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">using</span></code></dt><dd><p>Le nom <a class=\"reference internal\" href=\"/fr/5.2/ref/settings/#std-setting-TEMPLATES-NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NAME</span></code></a> d’un moteur de gabarit à utiliser pour charger le gabarit.</p>\n</dd>\n</dl>\n</section>\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>L’exemple suivant effectue le rendu du gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/index.html</span></code> avec le type MIME <em class=\"mimetype\">application/xhtml+xml</em>:</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.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">render</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"c1\"># View code here...</span>\n    <span class=\"k\">return</span> <span class=\"n\">render</span><span class=\"p\">(</span>\n        <span class=\"n\">request</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;myapp/index.html&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n        <span class=\"n\">content_type</span><span class=\"o\">=</span><span class=\"s2\">&quot;application/xhtml+xml&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Cet exemple est équivalent à :</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.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.template</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">loader</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"c1\"># View code here...</span>\n    <span class=\"n\">t</span> <span class=\"o\">=</span> <span class=\"n\">loader</span><span class=\"o\">.</span><span class=\"n\">get_template</span><span class=\"p\">(</span><span class=\"s2\">&quot;myapp/index.html&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">c</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">}</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"n\">t</span><span class=\"o\">.</span><span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">),</span> <span class=\"n\">content_type</span><span class=\"o\">=</span><span class=\"s2\">&quot;application/xhtml+xml&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"redirect\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">redirect()</span></code><a class=\"heading-anchor\" href=\"#redirect\"><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.shortcuts.redirect\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">to</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">permanent</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">preserve_request</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.shortcuts.redirect\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une réponse <a class=\"reference internal\" href=\"/fr/5.2/ref/request-response/#django.http.HttpResponseRedirect\" title=\"django.http.HttpResponseRedirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseRedirect</span></code></a> à l’URL correspondant aux paramètres transmis.</p>\n<p>Les paramètres peuvent être :</p>\n<ul class=\"simple\">\n<li><p>Un modèle : la fonction <a class=\"reference internal\" href=\"/fr/5.2/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a> du modèle sera appelée.</p></li>\n<li><p>Un nom de vue, et potentiellement des paramètres : <a class=\"reference internal\" href=\"/fr/5.2/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a> sera utilisée pour résoudre le nom.</p></li>\n<li><p>Une URL absolue ou relative qui sera utilisée telle quelle comme emplacement de redirection.</p></li>\n</ul>\n<p>Par défaut, une redirection temporaire produit un code d’état 302. Si <code class=\"docutils literal notranslate\"><span class=\"pre\">permanent=True</span></code>, la redirection temporaire produit un code d’état 301.</p>\n<p>Si <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request=True</span></code>, la réponse indique à l’agent utilisateur de préserver la méthode et le corps de la requête d’origine lors de la redirection. Dans ce cas, les redirections temporaires utilisent un code d’état 307 et les redirections permanentes un code 308. Le tableau suivant en présente une meilleure illustration :</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>permanent</p></th>\n<th class=\"head\"><p>preserve_request</p></th>\n<th class=\"head\"><p>Code d’état HTTP</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></td>\n<td><p>301</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></td>\n<td><p>302</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p></td>\n<td><p>307</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p></td>\n<td><p>308</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p>L’argument <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request</span></code> a été ajouté.</p>\n</aside>\n</dd></dl>\n\n<section id=\"examples\">\n<h3>Exemples<a class=\"heading-anchor\" href=\"#examples\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>La fonction <a class=\"reference internal\" href=\"#django.shortcuts.redirect\" title=\"django.shortcuts.redirect\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">redirect()</span></code></a> peut être utilisée de différentes manières.</p>\n<ol class=\"arabic\">\n<li><p>En lui passant un objet ; la méthode <a class=\"reference internal\" href=\"/fr/5.2/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a> de l’objet est appelée pour produire l’URL 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\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">redirect</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    <span class=\"n\">obj</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>En lui passant le nom d’une vue et, en option, des paramètres positionnels ou nommés ; l’URL sera résolue en utilisant la méthode <a class=\"reference internal\" href=\"/fr/5.2/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"s2\">&quot;some-view-name&quot;</span><span class=\"p\">,</span> <span class=\"n\">foo</span><span class=\"o\">=</span><span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>En lui passant une URL de redirection fixe :</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=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"s2\">&quot;/some/url/&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Cela fonctionne aussi avec des URL complètes :</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=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"s2\">&quot;https://example.com/&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n</ol>\n<p>Par défaut, <a class=\"reference internal\" href=\"#django.shortcuts.redirect\" title=\"django.shortcuts.redirect\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">redirect()</span></code></a> renvoie une redirection temporaire. Toutes les formes ci-dessus acceptent un paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">permanent</span></code> qui, s’il est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, produit une redirection permanente :</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=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    <span class=\"n\">obj</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">permanent</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>De plus, l’argument <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request</span></code> peut être utilisé pour préserver la méthode HTTP d’origine :</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=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"n\">obj</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n    <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">method</span> <span class=\"ow\">in</span> <span class=\"p\">(</span><span class=\"s2\">&quot;POST&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;PUT&quot;</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Redirection preserves the original request method.</span>\n        <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">preserve_request</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"get-object-or-404\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">get_object_or_404()</span></code><a class=\"heading-anchor\" href=\"#get-object-or-404\"><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.shortcuts.get_object_or_404\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_object_or_404</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">klass</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.shortcuts.get_object_or_404\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.shortcuts.aget_object_or_404\">\n<span class=\"sig-name descname\"><span class=\"pre\">aget_object_or_404</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">klass</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.shortcuts.aget_object_or_404\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Version asynchrone</em> : <code class=\"docutils literal notranslate\"><span class=\"pre\">aget_object_or_404()</span></code></p>\n<p>Appelle <a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.query.QuerySet.get\" title=\"django.db.models.query.QuerySet.get\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get()</span></code></a> d’un gestionnaire de modèle donné, mais génère une exception <a class=\"reference internal\" href=\"/fr/5.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> au lieu de l’exception <a class=\"reference internal\" href=\"/fr/5.2/ref/models/class/#django.db.models.Model.DoesNotExist\" title=\"django.db.models.Model.DoesNotExist\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DoesNotExist</span></code></a> du modèle.</p>\n</dd></dl>\n\n<section id=\"arguments\">\n<h3>Paramètres<a class=\"heading-anchor\" href=\"#arguments\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">klass</span></code></dt><dd><p>Une classe <a class=\"reference internal\" href=\"/fr/5.2/ref/models/instances/#django.db.models.Model\" title=\"django.db.models.Model\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Model</span></code></a>, un <a class=\"reference internal\" href=\"/fr/5.2/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> ou une instance <a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> comme source de l’objet.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">*args</span></code></dt><dd><p><a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.Q\" title=\"django.db.models.Q\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Objets</span> <span class=\"pre\">Q</span></code></a>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">**kwargs</span></code></dt><dd><p>Paramètres de recherche, dans un format accepté par <code class=\"docutils literal notranslate\"><span class=\"pre\">get()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"id1\">\n<h3>Exemple<a class=\"heading-anchor\" href=\"#id1\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>L’exemple suivant obtient l’objet``MyModel`` ayant la clé primaire 1 :</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.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">get_object_or_404</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">obj</span> <span class=\"o\">=</span> <span class=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"p\">,</span> <span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Cet exemple est équivalent à :</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.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Http404</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        <span class=\"n\">obj</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n    <span class=\"k\">except</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">DoesNotExist</span><span class=\"p\">:</span>\n        <span class=\"k\">raise</span> <span class=\"n\">Http404</span><span class=\"p\">(</span><span class=\"s2\">&quot;No MyModel matches the given query.&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Le cas le plus courant est de transmettre un <a class=\"reference internal\" href=\"/fr/5.2/ref/models/instances/#django.db.models.Model\" title=\"django.db.models.Model\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Model</span></code></a>, comme montré ci-dessus. Cependant, vous pouvez aussi transmettre une instance <a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">title__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;M&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>L’exemple ci-dessus est un peu tiré par les cheveux, car il est équivalent à :</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\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">Book</span><span class=\"p\">,</span> <span class=\"n\">title__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;M&quot;</span><span class=\"p\">,</span> <span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>mais cela reste utile dans les cas où vous recevez une variable <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> par un autre moyen.</p>\n<p>Finalement, vous pouvez aussi utiliser un gestionnaire (<a class=\"reference internal\" href=\"/fr/5.2/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a>). C’est utile par exemple si vous avez un <a class=\"reference internal\" href=\"/fr/5.2/topics/db/managers/#custom-managers\"><span class=\"std std-ref\">gestionnaire personnalisé</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=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">dahl_objects</span><span class=\"p\">,</span> <span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;Matilda&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Il est aussi possible d’utiliser des <a class=\"reference internal\" href=\"/fr/5.2/ref/models/relations/#django.db.models.fields.related.RelatedManager\" title=\"django.db.models.fields.related.RelatedManager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">gestionnaires</span> <span class=\"pre\">de</span> <span class=\"pre\">liaison</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Roald Dahl&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">book_set</span><span class=\"p\">,</span> <span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;Matilda&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Note : comme pour <code class=\"docutils literal notranslate\"><span class=\"pre\">get()</span></code>, une exception <a class=\"reference internal\" href=\"/fr/5.2/ref/exceptions/#django.core.exceptions.MultipleObjectsReturned\" title=\"django.core.exceptions.MultipleObjectsReturned\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleObjectsReturned</span></code></a> sera levée si plus d’un objet est renvoyé.</p>\n</section>\n</section>\n<section id=\"get-list-or-404\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_or_404()</span></code><a class=\"heading-anchor\" href=\"#get-list-or-404\"><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.shortcuts.get_list_or_404\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_list_or_404</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">klass</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.shortcuts.get_list_or_404\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.shortcuts.aget_list_or_404\">\n<span class=\"sig-name descname\"><span class=\"pre\">aget_list_or_404</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">klass</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.shortcuts.aget_list_or_404\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Version asynchrone</em> : <code class=\"docutils literal notranslate\"><span class=\"pre\">aget_list_or_404()</span></code></p>\n<p>Renvoie le résultat de <a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">filter()</span></code></a> sur un gestionnaire de modèle donné transformé en liste, générant <a class=\"reference internal\" href=\"/fr/5.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> si la liste résultante est vide.</p>\n</dd></dl>\n\n<section id=\"id2\">\n<h3>Paramètres<a class=\"heading-anchor\" href=\"#id2\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">klass</span></code></dt><dd><p>Une instance de <a class=\"reference internal\" href=\"/fr/5.2/ref/models/instances/#django.db.models.Model\" title=\"django.db.models.Model\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Model</span></code></a>, <a class=\"reference internal\" href=\"/fr/5.2/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> ou <a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> comme source de la liste d’objets.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">*args</span></code></dt><dd><p><a class=\"reference internal\" href=\"/fr/5.2/ref/models/querysets/#django.db.models.Q\" title=\"django.db.models.Q\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Objets</span> <span class=\"pre\">Q</span></code></a>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">**kwargs</span></code></dt><dd><p>Paramètres de recherche, dans un format accepté par <code class=\"docutils literal notranslate\"><span class=\"pre\">get()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"id3\">\n<h3>Exemple<a class=\"heading-anchor\" href=\"#id3\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>L’exemple suivant récupère tous les objets publiés de</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.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">get_list_or_404</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">my_objects</span> <span class=\"o\">=</span> <span class=\"n\">get_list_or_404</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"p\">,</span> <span class=\"n\">published</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Cet exemple est équivalent à :</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.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Http404</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">my_objects</span> <span class=\"o\">=</span> <span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">published</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span>\n    <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">my_objects</span><span class=\"p\">:</span>\n        <span class=\"k\">raise</span> <span class=\"n\">Http404</span><span class=\"p\">(</span><span class=\"s2\">&quot;No MyModel matches the given query.&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>","rootId":"module-django.shortcuts","toc":[{"title":"render()","anchor":"render","children":[{"title":"Paramètres obligatoires","anchor":"required-arguments","children":[]},{"title":"Paramètres facultatifs","anchor":"optional-arguments","children":[]},{"title":"Exemple","anchor":"example","children":[]}]},{"title":"redirect()","anchor":"redirect","children":[{"title":"Exemples","anchor":"examples","children":[]}]},{"title":"get_object_or_404()","anchor":"get-object-or-404","children":[{"title":"Paramètres","anchor":"arguments","children":[]},{"title":"Exemple","anchor":"id1","children":[]}]},{"title":"get_list_or_404()","anchor":"get-list-or-404","children":[{"title":"Paramètres","anchor":"id2","children":[]},{"title":"Exemple","anchor":"id3","children":[]}]}],"breadcrumbs":[{"docname":"topics/index","title":"Utilisation de Django","url":"/fr/5.2/topics/"},{"docname":"topics/http/index","title":"Gestion des requêtes HTTP","url":"/fr/5.2/topics/http/"}],"prev":{"docname":"topics/http/file-uploads","title":"Envoi de fichiers","url":"/fr/5.2/topics/http/file-uploads/"},"next":{"docname":"topics/http/generic-views","title":"Vues génériques","url":"/fr/5.2/topics/http/generic-views/"},"formats":{"html":"/fr/5.2/topics/http/shortcuts/","markdown":"/fr/5.2/topics/http/shortcuts.md","json":"/fr/5.2/topics/http/shortcuts.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/topics/http/shortcuts.txt","official":"https://docs.djangoproject.com/fr/5.2/topics/http/shortcuts/","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"]}