{"title":"Infrastructure de contrôle système","version":"1.9","locale":"fr","docname":"ref/checks","url":"/fr/1.9/ref/checks/","canonical":"https://djangodocs.dev/fr/1.9/ref/checks/","summary":"L’infrastructure de contrôle système est un ensemble de contrôles statiques pour valider les projets Django.","html":"<h1>Infrastructure de contrôle système<a class=\"heading-anchor\" href=\"#system-check-framework\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>L’infrastructure de contrôle système est un ensemble de contrôles statiques pour valider les projets Django. Elle détecte les problèmes courants et fournit des conseils sur la façon de les corriger. L’infrastructure est extensible de sorte que vous pouvez facilement ajouter vos propres contrôles.</p>\n<p>Pour plus de détails sur la façon d’ajouter vos propres contrôles et les intégrer aux contrôles systèmes de Django, consultez le <a class=\"reference internal\" href=\"/fr/1.9/topics/checks/\"><span class=\"doc\">Guide thématique sur la vérification système</span></a>.</p>\n<section id=\"api-reference\">\n<h2>Référence de l’API<a class=\"heading-anchor\" href=\"#api-reference\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"checkmessage\">\n<h3><code class=\"docutils literal notranslate\">CheckMessage</code><a class=\"heading-anchor\" href=\"#checkmessage\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.CheckMessage\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">CheckMessage</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">level</em>, <em class=\"sig-param\">msg</em>, <em class=\"sig-param\">hint</em>, <em class=\"sig-param\">obj<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">id<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.checks.CheckMessage\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Les avertissements et les erreurs signalés par les contrôles systèmes doivent être des instances de <code class=\"docutils literal notranslate\">CheckMessage</code>. Une instance encapsule une seule erreur à signaler ou un seul avertissement. Elle fournit également des indicateurs et le contexte applicables au message, et un identifiant unique qui est utilisé à des fins de filtrage.</p>\n<p>Les arguments du constructeur sont :</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\">level</code></dt><dd><p>La gravité du message. Utilisez l’une des valeurs prédéfinies : <code class=\"docutils literal notranslate\">DEBUG</code>, <code class=\"docutils literal notranslate\">INFO</code>, <code class=\"docutils literal notranslate\">WARNING</code>, <code class=\"docutils literal notranslate\">ERROR</code>, <code class=\"docutils literal notranslate\">CRITICAL</code>. Si le niveau est supérieur ou égal à <code class=\"docutils literal notranslate\">ERROR</code>, Django empêchera l’exécution des commandes de gestion. Les messages avec un niveau inférieur à <code class=\"docutils literal notranslate\">ERROR</code> (i.e. les avertissements) sont présentés dans la console, mais peuvent être réduits au silence.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\">msg</code></dt><dd><p>Une courte chaîne (moins de 80 caractères) décrivant le problème. La chaîne ne doit <em>pas</em> contenir des sauts de ligne.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\">hint</code></dt><dd><p>Une chaîne d’une seule ligne offrant un indicateur pour résoudre le problème. Si aucun indicateur ne peut être fourni, ou s’il est évident à partir du message d’erreur, l’indicateur peut être omis, ou une valeur <code class=\"docutils literal notranslate\">None</code> peut être utilisée.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\">obj</code></dt><dd><p>Facultatif. Un objet fournissant le contexte du message (par exemple, le modèle où le problème a été découvert). L’objet doit être un modèle, un champ, un gestionnaire ou tout autre objet qui définit la méthode <code class=\"docutils literal notranslate\">__str__</code> (avec Python 2, vous devez définir la méthode <code class=\"docutils literal notranslate\">__unicode__</code>). La méthode est utilisée lors de la collecte de tous les messages et son résultat précède le message.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\">id</code></dt><dd><p>Chaîne facultative. Un identifiant unique pour le problème. Les identifiants doivent suivre le modèle <code class=\"docutils literal notranslate\">applabel.X001</code>, où <code class=\"docutils literal notranslate\">X</code> est l’une des lettres <code class=\"docutils literal notranslate\">CEWID</code>, indiquant la gravité du message (<code class=\"docutils literal notranslate\">C</code> pour critique, <code class=\"docutils literal notranslate\">E</code> pour les erreurs et ainsi de suite). Le numéro peut être attribué par l’application, mais doit être unique au sein de cette application.</p>\n</dd>\n</dl>\n<p>Il existe des sous-classes pour faciliter la création des messages avec les niveaux de base. Lorsque vous les utilisez, vous pouvez omettre le paramètre <code class=\"docutils literal notranslate\">level</code> car il est sous-entendu par le nom de la classe.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Debug\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Debug</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">msg</em>, <em class=\"sig-param\">hint</em>, <em class=\"sig-param\">obj<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">id<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.checks.Debug\"><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 class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Info\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Info</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">msg</em>, <em class=\"sig-param\">hint</em>, <em class=\"sig-param\">obj<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">id<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.checks.Info\"><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 class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Warning\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Warning</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">msg</em>, <em class=\"sig-param\">hint</em>, <em class=\"sig-param\">obj<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">id<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.checks.Warning\"><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 class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Error\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Error</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">msg</em>, <em class=\"sig-param\">hint</em>, <em class=\"sig-param\">obj<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">id<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.checks.Error\"><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 class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Critical\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Critical</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">msg</em>, <em class=\"sig-param\">hint</em>, <em class=\"sig-param\">obj<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">id<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.checks.Critical\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n</section>\n<section id=\"builtin-checks\">\n<h2>Contrôles prédéfinis<a class=\"heading-anchor\" href=\"#builtin-checks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"builtin-tags\">\n<span id=\"system-check-builtin-tags\"></span><h3>Étiquettes prédéfinies<a class=\"heading-anchor\" href=\"#builtin-tags\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles systèmes de Django sont organisés en utilisant les étiquettes suivantes :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">models</code>: contrôles régissant les définitions de modèles, champs et gestionnaires.</p></li>\n<li><p><code class=\"docutils literal notranslate\">signals</code>: contrôles des déclarations de signaux et des enregistrements de gestionnaires.</p></li>\n<li><p><code class=\"docutils literal notranslate\">admin</code>: contrôles de toutes les déclarations de sites d’administration.</p></li>\n<li><p><code class=\"docutils literal notranslate\">compatibility</code>: identification de problèmes potentiels avec les mises à jour.</p></li>\n<li><p><code class=\"docutils literal notranslate\">security</code>: contrôle la configuration liée à la sécurité.</p></li>\n<li><p><code class=\"docutils literal notranslate\">templates</code>: contrôle la configuration liée aux gabarits.</p></li>\n<li><p><code class=\"docutils literal notranslate\">caches</code>: contrôle la configuration liée aux caches (mémoire tampon).</p></li>\n<li><p><code class=\"docutils literal notranslate\">urls</code>:  contrôle la configuration des URL.</p></li>\n</ul>\n<p>Certains contrôles peuvent être enregistrés sous plusieurs étiquettes.</p>\n</section>\n<section id=\"core-system-checks\">\n<h3>Vérifications systèmes du noyau<a class=\"heading-anchor\" href=\"#core-system-checks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"models\">\n<h4>Modèles<a class=\"heading-anchor\" href=\"#models\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>models.E001</strong> : <code class=\"docutils literal notranslate\">&lt;swappable&gt;</code> n’est pas sous la forme <code class=\"docutils literal notranslate\">étiquette_app.nom_app</code>.</p></li>\n<li><p><strong>models.E002</strong> : <code class=\"docutils literal notranslate\">&lt;RÉGLAGE&gt;</code> fait référence à <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>, qui n’est pas installé ou qui est abstrait.</p></li>\n<li><p><strong>models.E003</strong> : le modèle possède deux relations plusieurs-à-plusieurs via le modèle intermédiaire <code class=\"docutils literal notranslate\">&lt;étiquette_app&gt;.&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>models.E004</strong> : <code class=\"docutils literal notranslate\">id</code> ne peut être utilisé comme nom de champ que si le champ définit aussi <code class=\"docutils literal notranslate\">primary_key=True</code>.</p></li>\n<li><p><strong>models.E005</strong> : le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> du modèle parent <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> entre en conflit avec le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> du modèle parent <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>models.E006</strong> : le champ entre en conflit avec le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> du modèle <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>models.E007</strong> : le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> a le nom de colonne <code class=\"docutils literal notranslate\">&lt;nom_de_colonne&gt;</code> qui est utilisé par un autre champ.</p></li>\n<li><p><strong>models.E008</strong> : <code class=\"docutils literal notranslate\">index_together</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>models.E009</strong> : tous les éléments de <code class=\"docutils literal notranslate\">index_together</code> doivent être des listes ou des tuples.</p></li>\n<li><p><strong>models.E010</strong> : <code class=\"docutils literal notranslate\">unique_together</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>models.E011</strong>: tous les éléments de <code class=\"docutils literal notranslate\">unique_together</code> doivent être des listes ou des tuples.</p></li>\n<li><p><strong>models.E012</strong> : <code class=\"docutils literal notranslate\">index_together/unique_together</code> fait référence au champ inexistant <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>models.E013</strong> : <code class=\"docutils literal notranslate\">index_together/unique_together</code> fait référence à un <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> de type <code class=\"docutils literal notranslate\">ManyToManyField</code>, mais ces champs ne sont pas pris en charge pour cette option.</p></li>\n<li><p><strong>models.E014</strong> : <code class=\"docutils literal notranslate\">ordering</code> doit être un tuple ou une liste (même si vous souhaitez trier sur un seul champ).</p></li>\n<li><p><strong>models.E015</strong> : <code class=\"docutils literal notranslate\">ordering</code> fait référence au champ inexistant <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>models.E016</strong> : <code class=\"docutils literal notranslate\">index_together/unique_together</code> se réfèrent au champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> qui n’est pas local au modèle <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>models.E017</strong> : le modèle mandataire <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> contient des champs de modèle.</p></li>\n<li><p><strong>models.E018</strong> : nom de colonne auto-généré trop long pour le champ <code class=\"docutils literal notranslate\">&lt;champ&gt;</code>. La longueur maximale est de <code class=\"docutils literal notranslate\">&lt;longueur_maximum&gt;</code> pour la base de données <code class=\"docutils literal notranslate\">&lt;alias&gt;</code>.</p></li>\n<li><p><strong>models.E019</strong> : nom de colonne auto-généré trop long pour le champ plusieurs-à-plusieurs <code class=\"docutils literal notranslate\">&lt;champ&gt;</code>. La longueur maximale est de <code class=\"docutils literal notranslate\">&lt;longueur_maximum&gt;</code> pour la base de données <code class=\"docutils literal notranslate\">&lt;alias&gt;</code>.</p></li>\n<li><p><strong>models.E020</strong> : La méthode de classe <code class=\"docutils literal notranslate\">&lt;modèle&gt;.check()</code> est actuellement surchargée.</p></li>\n<li><p><strong>models.E021</strong> : <code class=\"docutils literal notranslate\">ordering</code> et <code class=\"docutils literal notranslate\">order_with_respect_to</code> ne peuvent pas être utilisés simultanément.</p></li>\n</ul>\n</section>\n<section id=\"fields\">\n<h4>Champs<a class=\"heading-anchor\" href=\"#fields\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>fields.E001</strong> : les noms de champ ne doivent pas se terminer par un trait de soulignement.</p></li>\n<li><p><strong>fields.E002</strong> : les noms de champ ne doivent pas contenir <code class=\"docutils literal notranslate\">&quot;__&quot;</code>.</p></li>\n<li><p><em>fields.E003*</em> : <code class=\"docutils literal notranslate\">pk</code> est un mot réservé et ne peut pas être utilisé comme nom de champ.</p></li>\n<li><p><strong>fields.E004</strong> : <code class=\"docutils literal notranslate\">choices</code> doit être un élément itérable (par ex. une liste ou un tuple).</p></li>\n<li><p><strong>fields.E005</strong> : <code class=\"docutils literal notranslate\">choices</code> doit être un élément itérable renvoyant des tuples <code class=\"docutils literal notranslate\">(valeur réelle, nom convivial)</code>.</p></li>\n<li><p><strong>fields.E006</strong> : <code class=\"docutils literal notranslate\">db_index</code> ne peut contenir que <code class=\"docutils literal notranslate\">None</code>, <code class=\"docutils literal notranslate\">True</code> ou <code class=\"docutils literal notranslate\">False</code>.</p></li>\n<li><p><strong>fields.E007</strong> : les clés primaires ne peuvent pas contenir <code class=\"docutils literal notranslate\">null=True</code>.</p></li>\n<li><p><strong>fields.E100</strong> : les champs <code class=\"docutils literal notranslate\">AutoField</code> doivent déclarer <code class=\"docutils literal notranslate\">primary_key=True</code>.</p></li>\n<li><p><strong>fields.E110</strong> : les champs <code class=\"docutils literal notranslate\">BooleanField</code> n’acceptent pas les valeurs nulles.</p></li>\n<li><p><strong>fields.E120</strong> : les champs <code class=\"docutils literal notranslate\">CharField</code> doivent définir un attribut <code class=\"docutils literal notranslate\">max_length</code>.</p></li>\n<li><p><strong>fields.E121</strong> : <code class=\"docutils literal notranslate\">max_length</code> doit être un entier positif.</p></li>\n<li><p><strong>fields.W122</strong> : <code class=\"docutils literal notranslate\">max_length</code> est ignoré lorsqu’il est utilisé pour un champ <code class=\"docutils literal notranslate\">IntegerField</code>.</p></li>\n<li><p><strong>fields.E130</strong> : les champs <code class=\"docutils literal notranslate\">DecimalField</code> doivent définir un attribut <code class=\"docutils literal notranslate\">decimal_places</code>.</p></li>\n<li><p><strong>fields.E131</strong> : <code class=\"docutils literal notranslate\">decimal_places</code> doit être un entier non négatif.</p></li>\n<li><p><strong>fields.E132</strong> : les champs <code class=\"docutils literal notranslate\">DecimalField</code> doivent définir un attribut <code class=\"docutils literal notranslate\">max_digits</code>.</p></li>\n<li><p><strong>fields.E133</strong> : <code class=\"docutils literal notranslate\">max_digits</code> doit être un entier non négatif.</p></li>\n<li><p><strong>fields.E134</strong> : <code class=\"docutils literal notranslate\">max_digits</code> doit être supérieur ou égal à <code class=\"docutils literal notranslate\">decimal_places</code>.</p></li>\n<li><p><strong>fields.E140</strong> : les champs <code class=\"docutils literal notranslate\">FilePathField</code> doivent comporter l’un des deux attributs <code class=\"docutils literal notranslate\">allow_files</code> et <code class=\"docutils literal notranslate\">allow_folders</code> défini à <code class=\"docutils literal notranslate\">True</code>.</p></li>\n<li><p><strong>fields.E150</strong> : les champs <code class=\"docutils literal notranslate\">GenericIPAddressField</code> ne peuvent pas accepter de valeurs vides si les valeurs nulles ne sont pas autorisées, car les valeurs vides sont stockées sous forme de valeurs nulles.</p></li>\n<li><p><strong>fields.E160</strong> : les options <code class=\"docutils literal notranslate\">auto_now</code>, <code class=\"docutils literal notranslate\">auto_now_add</code> et <code class=\"docutils literal notranslate\">default</code> sont mutuellement exclusives. Une seule de ces options doit être conservée.</p></li>\n<li><p><strong>fields.W161</strong> : une valeur par défaut fixe est indiquée.</p></li>\n<li><p><strong>fields.E900</strong> : <code class=\"docutils literal notranslate\">IPAddressField</code> a été supprimé, sauf pour la prise en charge de migrations historiques.</p></li>\n<li><p><strong>fields.W900</strong> : <code class=\"docutils literal notranslate\">IPAddressField</code> est obsolète. Sa prise en charge (à l’exception des migrations historiques) sera supprimée dans Django 1.9. <em>Ce contrôle apparaît dans Django 1.7 et 1.8</em>.</p></li>\n</ul>\n</section>\n<section id=\"file-fields\">\n<h4>Champs de type fichier<a class=\"heading-anchor\" href=\"#file-fields\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>fields.E200</strong> : <code class=\"docutils literal notranslate\">unique</code> n’est pas un paramètre valable pour un champ <code class=\"docutils literal notranslate\">FileField</code>.</p></li>\n<li><p><strong>fields.E201</strong> : <code class=\"docutils literal notranslate\">primary_key</code> n’est pas un paramètre valable pour un champ <code class=\"docutils literal notranslate\">FileField</code>.</p></li>\n<li><p><strong>fields.E210</strong> : impossible d’utiliser <code class=\"docutils literal notranslate\">ImageField</code> car Pillow n’est pas installé.</p></li>\n</ul>\n</section>\n<section id=\"related-fields\">\n<h4>Champs de liaison<a class=\"heading-anchor\" href=\"#related-fields\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>fields.E300</strong> : le champ définit une relation avec le modèle <code class=\"docutils literal notranslate\">&lt;model&gt;</code>, qui n’est pas installé ou qui est abstrait.</p></li>\n<li><p><strong>fields.E301</strong> : le champ définit une relation avec le modèle <code class=\"docutils literal notranslate\">&lt;model&gt;</code> qui a été substitué.</p></li>\n<li><p><strong>fields.E302</strong> : l’accesseur pour le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> entre en conflit avec le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>fields.E303</strong> : le nom de requête inverse pour le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> entre en conflit avec le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>fields.E304</strong> : le nom du champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> entre en conflit avec l’accesseur de <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>fields.E305</strong> : le nom du champ <code class=\"docutils literal notranslate\">&lt;nom_du_champ&gt;</code> entre en conflit avec nom de requête inverse pour <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>fields.E306</strong> : le nom de liaison doit être un identifiant Python valide ou se terminer avec un <code class=\"docutils literal notranslate\">'+'</code>.</p></li>\n<li><p><strong>fields.E310</strong> : aucun sous-ensemble des champs <code class=\"docutils literal notranslate\">&lt;champ1&gt;</code>, <code class=\"docutils literal notranslate\">&lt;champ2&gt;</code>, … du modèle <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> n’est unique. Ajoutez <code class=\"docutils literal notranslate\">unique=True</code> sur un de ces champs ou ajoutez au moins certains de ces champs dans une contrainte <code class=\"docutils literal notranslate\">unique_together</code>.</p></li>\n<li><p><strong>fields.E311</strong> : <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> doit déclarer <code class=\"docutils literal notranslate\">unique=True</code> car il est référencé par une clé <code class=\"docutils literal notranslate\">ForeignKey</code>.</p></li>\n<li><p><strong>fields.E320</strong> : le champ contient <code class=\"docutils literal notranslate\">on_delete=SET_NULL</code> mais il ne peut pas être nul.</p></li>\n<li><p><strong>fields.E321</strong> : le champ contient <code class=\"docutils literal notranslate\">on_delete=SET_DEFAULT</code> mais il n’a pas de valeur par défaut.</p></li>\n<li><p><strong>fields.E330</strong> : les champs <code class=\"docutils literal notranslate\">ManyToManyField</code> ne peuvent pas être uniques.</p></li>\n<li><p><strong>fields.E331</strong> : le champ définit une relation plusieurs-à-plusieurs via le modèle <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> qui n’a pas été installé.</p></li>\n<li><p><strong>fields.E332</strong> : les champs plusieurs-à-plusieurs avec des tables intermédiaires ne peuvent pas être symétriques.</p></li>\n<li><p><strong>fields.E333</strong> : le modèle est utilisé en tant que modèle intermédiaire par <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> mais il a plus de deux clés étrangères vers <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>, ce qui est ambigu. Vous devez indiquer laquelle des deux clés étrangères Django doit utiliser via le paramètre nommé <code class=\"docutils literal notranslate\">through_fields</code>.</p></li>\n<li><p><strong>fields.E334</strong> : le modèle est utilisé en tant que modèle intermédiaire par <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> mais il a plus d’une clé étrangère depuis <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>, ce qui est ambigu. Vous devez indiquer quelle clé étrangère Django doit utiliser via le paramètre nommé <code class=\"docutils literal notranslate\">through_fields</code>.</p></li>\n<li><p><strong>fields.E335</strong> : le modèle est utilisé en tant que modèle intermédiaire par <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> mais il a plus d’une clé étrangère vers <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>, ce qui est ambigu. Vous devez indiquer quelle clé étrangère Django doit utiliser via le paramètre nommé <code class=\"docutils literal notranslate\">through_fields</code>.</p></li>\n<li><p><strong>fields.E336</strong> : le modèle est utilisé en tant que modèle intermédiaire par <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> mais il n’a pas de clé étrangère vers <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> ou <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>fields.E337</strong> : le champ définit <code class=\"docutils literal notranslate\">through_fields</code> mais ne fournit pas le nom des deux champs de liaison qui doivent être utilisés pour la relation via <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>fields.E338</strong> : le modèle intermédiaire <code class=\"docutils literal notranslate\">&lt;through model&gt;</code> n’a pas de champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>fields.E339</strong> : <code class=\"docutils literal notranslate\">&lt;modèle&gt;.&lt;nom_de_champ&gt;</code> n’est pas une clé étrangère vers <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>fields.W340</strong> : <code class=\"docutils literal notranslate\">null</code> n’a pas d’effet sur le champ <code class=\"docutils literal notranslate\">ManyToManyField</code>.</p></li>\n<li><p><strong>fields.W341</strong> : <code class=\"docutils literal notranslate\">ManyToManyField</code> ne prend pas en charge le paramètre <code class=\"docutils literal notranslate\">validators</code>.</p></li>\n<li><p><strong>fields.W342</strong> : la définition de <code class=\"docutils literal notranslate\">unique=True</code> sur un champ <code class=\"docutils literal notranslate\">ForeignKey</code> a le même effet que d’utiliser un champ <code class=\"docutils literal notranslate\">OneToOneField</code>.</p></li>\n</ul>\n</section>\n<section id=\"signals\">\n<h4>Signaux<a class=\"heading-anchor\" href=\"#signals\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>signals.E001</strong> : <code class=\"docutils literal notranslate\">&lt;gestionnaire&gt;</code> est connecté au signal <code class=\"docutils literal notranslate\">&lt;signal&gt;</code> avec une référence différée vers l’expéditeur <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>, qui n’a pas été installé.</p></li>\n</ul>\n</section>\n<section id=\"backwards-compatibility\">\n<h4>Rétrocompatibilité<a class=\"heading-anchor\" href=\"#backwards-compatibility\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Les contrôles suivants sont effectués pour prévenir l’utilisateur de tout problème potentiel qui pourrait survenir à la suite d’une mise à niveau de version.</p>\n<ul class=\"simple\">\n<li><p><strong>1_6.W001</strong> : Certains tests unitaires de projet peuvent ne pas s’exécuter comme prévu. <em>Ce contrôle a été supprimé de Django 1.8 en raison de faux positifs</em>.</p></li>\n<li><p><strong>1_6.W002</strong> : <code class=\"docutils literal notranslate\">BooleanField</code> n’a pas de valeur par défaut. <em>Ce contrôle a été supprimé de Django 1.8 en raison de faux positifs</em>.</p></li>\n<li><p><strong>1_7.W001</strong> :  Django 1.7 a modifié la valeur par défaut globale de <code class=\"docutils literal notranslate\">MIDDLEWARE_CLASSES.</code> <code class=\"docutils literal notranslate\">django.contrib.sessions.middleware.SessionMiddleware</code>, <code class=\"docutils literal notranslate\">django.contrib.auth.middleware.AuthenticationMiddleware</code> et <code class=\"docutils literal notranslate\">django.contrib.messages.middleware.MessageMiddleware</code> ont été enlevés de la valeur par défaut. Si votre projet a besoin de ces intergiciels, il faudra alors que vous configuriez ce réglage. <em>Ce contrôle a été supprimé dans Django 1.9</em>.</p></li>\n<li><p><strong>1_8.W001</strong> : les réglages indépendants <code class=\"docutils literal notranslate\">TEMPLATE_*</code> ont été rendus obsolètes dans Django 1.8 et le dictionnaire <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATES</code></a> a maintenant la priorité. Vous devez placer les valeurs des réglages suivants dans votre dictionnaire <code class=\"docutils literal notranslate\">TEMPLATES</code> par défaut : <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATE_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATE_DIRS</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-ALLOWED_INCLUDE_ROOTS\"><code class=\"xref std std-setting docutils literal notranslate\">ALLOWED_INCLUDE_ROOTS</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATE_CONTEXT_PROCESSORS\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATE_CONTEXT_PROCESSORS</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATE_DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATE_DEBUG</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATE_LOADERS\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATE_LOADERS</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATE_STRING_IF_INVALID\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATE_STRING_IF_INVALID</code></a>.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"admin\">\n<h3>Interface d’administration<a class=\"heading-anchor\" href=\"#admin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles de l’interface d’administration sont tous effectués sous l’étiquette <code class=\"docutils literal notranslate\">admin</code>.</p>\n<p>Les contrôles suivants sont effectués sur toute classe (ou sous-classe de) <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\">ModelAdmin</code></a> qui est inscrite auprès du site d’administration :</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E001</strong> : la valeur de <code class=\"docutils literal notranslate\">raw_id_fields</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E002</strong> : la valeur de <code class=\"docutils literal notranslate\">raw_id_fields[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E003</strong> : la valeur de <code class=\"docutils literal notranslate\">raw_id_fields[n]</code> doit être une clé <code class=\"docutils literal notranslate\">ForeignKey</code> ou un champ <code class=\"docutils literal notranslate\">ManyToManyField</code>.</p></li>\n<li><p><strong>admin.E004</strong> : la valeur de <code class=\"docutils literal notranslate\">fields</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E005</strong> : <code class=\"docutils literal notranslate\">fieldsets</code> et <code class=\"docutils literal notranslate\">fields</code> sont tous deux spécifiés.</p></li>\n<li><p><strong>admin.E006</strong> : la valeur de <code class=\"docutils literal notranslate\">fields</code> contient des champs en double.</p></li>\n<li><p><strong>admin.E007</strong> : la valeur de <code class=\"docutils literal notranslate\">fieldsets</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E008</strong> : la valeur de <code class=\"docutils literal notranslate\">fieldsets[n]</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E009</strong> : la valeur de <code class=\"docutils literal notranslate\">fieldsets[n]</code> doit être de longueur 2.</p></li>\n<li><p><strong>admin.E010</strong> : la valeur de <code class=\"docutils literal notranslate\">fieldsets[n][1]</code> doit être un dictionnaire.</p></li>\n<li><p><strong>admin.E011</strong> : la valeur de <code class=\"docutils literal notranslate\">fieldsets[n][1]</code> doit contenir la clé <code class=\"docutils literal notranslate\">fields</code>.</p></li>\n<li><p><strong>admin.E012</strong> : il y a des champs en double dans <code class=\"docutils literal notranslate\">fieldsets[n][1]</code>.</p></li>\n<li><p><strong>admin.E013</strong> : <code class=\"docutils literal notranslate\">fields[n]/fieldsets[n][m]</code> ne peut pas inclure le champ <code class=\"docutils literal notranslate\">ManyToManyField</code> <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, car ce champ définit manuellement un modèle de relation.</p></li>\n<li><p><strong>admin.E014</strong> : la valeur de <code class=\"docutils literal notranslate\">exclude</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E015</strong> : la valeur de <code class=\"docutils literal notranslate\">exclude</code> contient des champs en double.</p></li>\n<li><p><strong>admin.E016</strong> : la valeur de <code class=\"docutils literal notranslate\">form</code> doit hériter de <code class=\"docutils literal notranslate\">BaseModelForm</code>.</p></li>\n<li><p><strong>admin.E017</strong> : la valeur de <code class=\"docutils literal notranslate\">filter_vertical</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E018</strong> : la valeur de <code class=\"docutils literal notranslate\">filter_horizontal</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E019</strong> : la valeur de <code class=\"docutils literal notranslate\">filter_vertical[n]/filter_vertical[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E020</strong> : la valeur de <code class=\"docutils literal notranslate\">filter_vertical[n]/filter_vertical[n]</code> doit être un champ <code class=\"docutils literal notranslate\">ManyToManyField</code>.</p></li>\n<li><p><strong>admin.E021</strong> : la valeur de <code class=\"docutils literal notranslate\">radio_fields</code> doit être un dictionnaire.</p></li>\n<li><p><strong>admin.E022</strong> : la valeur de <code class=\"docutils literal notranslate\">radio_fields</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E023</strong> : la valeur de <code class=\"docutils literal notranslate\">radio_fields</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas une clé <code class=\"docutils literal notranslate\">ForeignKey</code> et n’a pas de définition <code class=\"docutils literal notranslate\">choices</code>.</p></li>\n<li><p><strong>admin.E024</strong> : la valeur de <code class=\"docutils literal notranslate\">radio_fields[&lt;nom_de_champ&gt;]</code> doit être soit <code class=\"docutils literal notranslate\">admin.HORIZONTAL</code> soit <code class=\"docutils literal notranslate\">admin.VERTICAL</code>.</p></li>\n<li><p><strong>admin.E025</strong> : la valeur de <code class=\"docutils literal notranslate\">view_on_site</code> doit être soit un objet exécutable, soit une valeur booléenne.</p></li>\n<li><p><strong>admin.E026</strong> : la valeur de <code class=\"docutils literal notranslate\">prepopulated_fields</code> doit être un dictionnaire.</p></li>\n<li><p><strong>admin.E027</strong> : la valeur de <code class=\"docutils literal notranslate\">prepopulated_fields</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E028</strong> : la valeur de <code class=\"docutils literal notranslate\">prepopulated_fields</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui ne doit pas être un champ <code class=\"docutils literal notranslate\">DateTimeField</code>, <code class=\"docutils literal notranslate\">ForeignKey</code> ni <code class=\"docutils literal notranslate\">ManyToManyField</code>.</p></li>\n<li><p><strong>admin.E029</strong> : la valeur de <code class=\"docutils literal notranslate\">prepopulated_fields[&lt;nom_de_champ&gt;]</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E030</strong> : la valeur de <code class=\"docutils literal notranslate\">prepopulated_fields</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E031</strong> : la valeur de <code class=\"docutils literal notranslate\">ordering</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E032</strong> : la valeur de <code class=\"docutils literal notranslate\">ordering</code> a le marqueur d’ordre aléatoire <code class=\"docutils literal notranslate\">?</code>, mais contient aussi d’autres champs.</p></li>\n<li><p><strong>admin.E033</strong> : la valeur de <code class=\"docutils literal notranslate\">ordering</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E034</strong> : la valeur de <code class=\"docutils literal notranslate\">readonly_fields</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E035</strong>: La valeur de <code class=\"docutils literal notranslate\">readonly_fields[n]</code> n’est pas appelable, un attribut de <code class=\"docutils literal notranslate\">&lt;ModelAdmin class&gt;</code>, ou un attribut de <code class=\"docutils literal notranslate\">&lt;model&gt;</code>.</p></li>\n</ul>\n<section id=\"modeladmin\">\n<h4><code class=\"docutils literal notranslate\">ModelAdmin</code><a class=\"heading-anchor\" href=\"#modeladmin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Les contrôles suivants sont effectués sur toute classes (ou sous-classe de) <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\">ModelAdmin</code></a> qui est enregistrée auprès du site d’administration:</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E101</strong>: La valeur de <code class=\"docutils literal notranslate\">save_as</code> doit être un booléen.</p></li>\n<li><p><strong>admin.E102</strong>: La valeur de <code class=\"docutils literal notranslate\">save_on_top</code> doit être un booléen.</p></li>\n<li><p><strong>admin.E103</strong>: La valeur de <code class=\"docutils literal notranslate\">inlines</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E104</strong>: <code class=\"docutils literal notranslate\">&lt;InlineModelAdmin class&gt;</code> doit hériter de <code class=\"docutils literal notranslate\">BaseModelAdmin</code>.</p></li>\n<li><p><strong>admin.E105</strong>: <code class=\"docutils literal notranslate\">&lt;InlineModelAdmin class&gt;</code> doit avoir un attribut <code class=\"docutils literal notranslate\">model</code>.</p></li>\n<li><p><strong>admin.E106</strong>: La valeur de <code class=\"docutils literal notranslate\">&lt;InlineModelAdmin class&gt;.model</code> doit être un <code class=\"docutils literal notranslate\">Model</code>.</p></li>\n<li><p><strong>admin.E107</strong>: La valeur de <code class=\"docutils literal notranslate\">list_display</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E108</strong> : la valeur de <code class=\"docutils literal notranslate\">list_display[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui n’est pas un objet exécutable, un attribut de <code class=\"docutils literal notranslate\">&lt;classe ModelAdmin&gt;</code>, ni un attribut ou une méthode de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E109</strong> : la valeur de <code class=\"docutils literal notranslate\">list_display[n]</code> ne peut pas être un champ <code class=\"docutils literal notranslate\">ManyToManyField</code>.</p></li>\n<li><p><strong>admin.E110</strong> : La valeur de <code class=\"docutils literal notranslate\">list_display_links</code> doit être une liste, un tuple ou <code class=\"docutils literal notranslate\">None</code>.</p></li>\n<li><p><strong>admin.E111</strong> : la valeur de <code class=\"docutils literal notranslate\">list_display_links[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui n’est pas défini dans <code class=\"docutils literal notranslate\">list_display</code>.</p></li>\n<li><p><strong>admin.E112</strong> : La valeur de <code class=\"docutils literal notranslate\">list_filter</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E113</strong> : la valeur de <code class=\"docutils literal notranslate\">list_filter[n]</code> doit hériter de <code class=\"docutils literal notranslate\">ListFilter</code>.</p></li>\n<li><p><strong>admin.E114</strong> : la valeur de <code class=\"docutils literal notranslate\">list_filter[n]</code> ne doit pas hériter de <code class=\"docutils literal notranslate\">FieldListFilter</code>.</p></li>\n<li><p><strong>admin.E115</strong> : la valeur de <code class=\"docutils literal notranslate\">list_filter[n][1]</code> doit hériter de <code class=\"docutils literal notranslate\">FieldListFilter</code>.</p></li>\n<li><p><strong>admin.E116</strong> : la valeur de <code class=\"docutils literal notranslate\">list_filter[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui ne fait pas référence à un champ <code class=\"docutils literal notranslate\">Field</code>.</p></li>\n<li><p><strong>admin.E117</strong> : la valeur de <code class=\"docutils literal notranslate\">list_select_related</code> doit être une valeur booléenne, un tuple ou une liste.</p></li>\n<li><p><strong>admin.E118</strong> : la valeur de <code class=\"docutils literal notranslate\">list_per_page</code> doit être un nombre entier.</p></li>\n<li><p><strong>admin.E119</strong> : la valeur de <code class=\"docutils literal notranslate\">list_max_show_all</code> doit être un nombre entier.</p></li>\n<li><p><strong>admin.E120</strong> : la valeur de <code class=\"docutils literal notranslate\">list_editable</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E121</strong> : la valeur de <code class=\"docutils literal notranslate\">list_editable[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E122</strong> : la valeur de <code class=\"docutils literal notranslate\">list_editable[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui ne figure pas dans <code class=\"docutils literal notranslate\">list_display</code>.</p></li>\n<li><p><strong>admin.E123</strong> : la valeur de <code class=\"docutils literal notranslate\">list_editable[n]</code> ne peut pas être à la fois dans <code class=\"docutils literal notranslate\">list_editable</code> et dans  <code class=\"docutils literal notranslate\">list_display_links</code>.</p></li>\n<li><p><strong>admin.E124</strong> : la valeur de <code class=\"docutils literal notranslate\">list_editable[n]</code> fait référence au tout premier champ dans <code class=\"docutils literal notranslate\">list_display</code> (<code class=\"docutils literal notranslate\">&lt;label&gt;</code>), qui ne peut pas utilisé tant que <code class=\"docutils literal notranslate\">list_display_links</code> n’est pas défini.</p></li>\n<li><p><strong>admin.E125</strong> : la valeur de <code class=\"docutils literal notranslate\">list_editable[n]</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas modifiable dans l’interface d’administration.</p></li>\n<li><p><strong>admin.E126</strong> : La valeur de <code class=\"docutils literal notranslate\">search_fields</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>admin.E127</strong> : la valeur de <code class=\"docutils literal notranslate\">date_hierarchy</code> fait référence à <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, qui n’est pas un attribut de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E128</strong> : la valeur de <code class=\"docutils literal notranslate\">date_hierarchy</code> doit être un champ <code class=\"docutils literal notranslate\">DateField</code> ou <code class=\"docutils literal notranslate\">DateTimeField</code>.</p></li>\n</ul>\n</section>\n<section id=\"inlinemodeladmin\">\n<h4><code class=\"docutils literal notranslate\">InlineModelAdmin</code><a class=\"heading-anchor\" href=\"#inlinemodeladmin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Les contrôles suivants sont effectués sur chaque <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\">InlineModelAdmin</code></a> qui est inscrit comme élément intégré dans une classe <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\">ModelAdmin</code></a>.</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E201</strong> : vous ne pouvez pas exclure le champ <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>, car il s’agit de la clé étrangère vers le modèle parent <code class=\"docutils literal notranslate\">&lt;étiquette_application&gt;.&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E202</strong> : <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> n’a pas de clé <code class=\"docutils literal notranslate\">ForeignKey</code> vers <code class=\"docutils literal notranslate\">&lt;modèle parent&gt;</code>./ <code class=\"docutils literal notranslate\">&lt;modèle&gt; `` a plus d'une clé ``ForeignKey</code> vers <code class=\"docutils literal notranslate\">&lt;modèle parent&gt;</code>.</p></li>\n<li><p><strong>admin.E203</strong> : la valeur de <code class=\"docutils literal notranslate\">extra</code> doit être un nombre entier.</p></li>\n<li><p><strong>admin.E204</strong> : la valeur de <code class=\"docutils literal notranslate\">max_num</code> doit être un nombre entier.</p></li>\n<li><p><strong>admin.E205</strong> : la valeur de <code class=\"docutils literal notranslate\">min_num</code> doit être un nombre entier.</p></li>\n<li><p><strong>admin.E206</strong> : la valeur de <code class=\"docutils literal notranslate\">formset</code> doit hériter de <code class=\"docutils literal notranslate\">BaseModelFormSet</code>.</p></li>\n</ul>\n</section>\n<section id=\"genericinlinemodeladmin\">\n<h4><code class=\"docutils literal notranslate\">GenericInlineModelAdmin</code><a class=\"heading-anchor\" href=\"#genericinlinemodeladmin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Les contrôles suivants sont effectués sur chaque <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericInlineModelAdmin\" title=\"django.contrib.contenttypes.admin.GenericInlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\">GenericInlineModelAdmin</code></a> qui est inscrit comme élément intégré dans une classe <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\">ModelAdmin</code></a>.</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E301</strong> : <code class=\"docutils literal notranslate\">'champ_ct'</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui n’est pas un champ de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E302</strong> : <code class=\"docutils literal notranslate\">'champ_ct_fk'</code> fait référence à <code class=\"docutils literal notranslate\">&lt;label&gt;</code>, qui n’est pas un champ de <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code>.</p></li>\n<li><p><strong>admin.E303</strong> : <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> n’a pas de clé <code class=\"docutils literal notranslate\">GenericForeignKey</code>.</p></li>\n<li><p><strong>admin.E304</strong> : <code class=\"docutils literal notranslate\">&lt;modèle&gt;</code> n’a pas de clé <code class=\"docutils literal notranslate\">GenericForeignKey</code> utilisant le champ de type de contenu <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code> et le champ d’identifiant d’objet <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"auth\">\n<h3>Auth<a class=\"heading-anchor\" href=\"#auth\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><strong>auth.E001</strong> : <code class=\"docutils literal notranslate\">REQUIRED_FIELDS</code> doit être une liste ou un tuple.</p></li>\n<li><p><strong>auth.E002</strong> : le champ désigné en tant que <code class=\"docutils literal notranslate\">USERNAME_FIELD</code> pour un modèle utilisateur personnalisé ne doit pas être inclus dans <code class=\"docutils literal notranslate\">REQUIRED_FIELDS</code>.</p></li>\n<li><p><strong>auth.E003</strong> : <code class=\"docutils literal notranslate\">&lt;champ&gt;</code> doit être unique car il est désigné comme <code class=\"docutils literal notranslate\">USERNAME_FIELD</code>.</p></li>\n<li><p><strong>auth.W004</strong> : <code class=\"docutils literal notranslate\">&lt;champ&gt;</code> est désigné comme <code class=\"docutils literal notranslate\">USERNAME_FIELD</code>, mais il n’est pas unique.</p></li>\n</ul>\n</section>\n<section id=\"content-types\">\n<h3>Types de contenu<a class=\"heading-anchor\" href=\"#content-types\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles suivants sont effectués quand un modèle contient une clé <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericForeignKey\" title=\"django.contrib.contenttypes.fields.GenericForeignKey\"><code class=\"xref py py-class docutils literal notranslate\">GenericForeignKey</code></a> ou une relation <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericRelation\" title=\"django.contrib.contenttypes.fields.GenericRelation\"><code class=\"xref py py-class docutils literal notranslate\">GenericRelation</code></a>:</p>\n<ul class=\"simple\">\n<li><p><strong>contenttypes.E001</strong> : l’ID d’objet <code class=\"docutils literal notranslate\">GenericForeignKey</code> fait référence au champ <code class=\"docutils literal notranslate\">&lt;field&gt;</code> qui n’existe pas.</p></li>\n<li><p><strong>contenttypes.E002</strong> : le type de contenu <code class=\"docutils literal notranslate\">GenericForeignKey</code> fait référence au champ <code class=\"docutils literal notranslate\">&lt;field&gt;</code> inexistant.</p></li>\n<li><p><strong>contenttypes.E003</strong> : <code class=\"docutils literal notranslate\">&lt;champ&gt;</code> n’est pas une clé <code class=\"docutils literal notranslate\">ForeignKey</code>.</p></li>\n<li><p><strong>contenttypes.E004</strong> : <code class=\"docutils literal notranslate\">&lt;field&gt;</code> n’est pas une <code class=\"docutils literal notranslate\">ForeignKey</code> vers <code class=\"docutils literal notranslate\">contenttypes.ContentType</code>.</p></li>\n</ul>\n</section>\n<section id=\"security\">\n<h3>Sécurité<a class=\"heading-anchor\" href=\"#security\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles de sécurité ne rendent pas votre site sûr. Ils n’auditent pas votre code, ne font pas de détection d’intrusion ou quoi que ce soit d’autre de particulièrement complexe. Ils s’occupent plutôt d’une liste de contrôles automatisés détectant les problèmes les plus évidents. Ils aident à se rappeler des choses simples qui améliorent la sécurité d’un site.</p>\n<p>Certains de ces contrôles ne sont pas forcément adéquats pour votre configuration de déploiement particulière. Par exemple, si vous avez délégué la redirection HTTP vers HTTPS à un répartiteur de charge, il serait gênant d’être constamment averti que le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_SSL_REDIRECT</code></a> n’est pas actif. Utilisez <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SILENCED_SYSTEM_CHECKS\"><code class=\"xref std std-setting docutils literal notranslate\">SILENCED_SYSTEM_CHECKS</code></a> pour réduire au silence les contrôles non nécessaires.</p>\n<p>Les contrôles suivants sont exécutés si l’option <code class=\"docutils literal notranslate\">--deploy</code> est indiquée :</p>\n<ul class=\"simple\">\n<li><p><strong>security.W001</strong> : l’intergiciel <a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">django.middleware.security.SecurityMiddleware</code></a> ne figure pas dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MIDDLEWARE_CLASSES\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE_CLASSES</code></a> ce qui rendra ineffectif les réglages <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_HSTS_SECONDS</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_CONTENT_TYPE_NOSNIFF</code></a>, <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_BROWSER_XSS_FILTER\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_BROWSER_XSS_FILTER</code></a> et <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_SSL_REDIRECT</code></a>.</p></li>\n<li><p><strong>security.W002</strong> : l’intergiciel <a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#django.middleware.clickjacking.XFrameOptionsMiddleware\" title=\"django.middleware.clickjacking.XFrameOptionsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">django.middleware.clickjacking.XFrameOptionsMiddleware</code></a> ne figure pas dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MIDDLEWARE_CLASSES\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE_CLASSES</code></a>, ce qui fait que vos pages ne seront pas servies avec un en-tête <code class=\"docutils literal notranslate\">'x-frame-options'</code>. Sauf dans les cas où il existe une bonne raison pour que votre site apparaisse dans un cadre, il est recommandé d’activer cet en-tête pour contribuer à prévenir les attaques par détournement de clic.</p></li>\n<li><p><strong>security.W003</strong> : il semble que vous n’utilisiez pas la protection intégrée de Django contre la falsification de requêtes inter-sites avec l’intergiciel dédié (<a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#django.middleware.csrf.CsrfViewMiddleware\" title=\"django.middleware.csrf.CsrfViewMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">django.middleware.csrf.CsrfViewMiddleware</code></a> ne figure pas dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MIDDLEWARE_CLASSES\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE_CLASSES</code></a>). L’activation de l’intergiciel est l’approche la plus sûre pour s’assurer qu’aucun trou ne subsiste dans cette protection.</p></li>\n<li><p><strong>security.W004</strong> : vous n’avez pas défini de valeur pour le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_HSTS_SECONDS</code></a>. Si tout votre site est entièrement servi par SSL, il est possible d’envisager définir une valeur et d’activer <a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">HSTS (HTTP Strict Transport Security)</span></a>. Mais prenez soin de lire premièrement la documentation ; l’activation précipitée de HSTS peut être la cause de problèmes sérieux et irréversibles.</p></li>\n<li><p><strong>security.W005</strong> : vous n’avez pas défini le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_HSTS_INCLUDE_SUBDOMAINS\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_HSTS_INCLUDE_SUBDOMAINS</code></a> à <code class=\"docutils literal notranslate\">True</code>. Sans cela, votre site est potentiellement vulnérable à des attaques via une connexion non sécurisée à un sous-domaine. Ne choisissez la valeur <code class=\"docutils literal notranslate\">True</code> que si vous êtes sûr que tous les sous-domaines de votre domaine sont exclusivement servis par SSL.</p></li>\n<li><p><strong>security.W006</strong> : le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_CONTENT_TYPE_NOSNIFF</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>, ce qui fait que vos pages ne seront pas servies avec un en-tête <code class=\"docutils literal notranslate\">'x-content-type-options: nosniff'</code>. Vous devriez envisager d’activer cet en-tête pour empêcher les navigateurs d’identifier de manière incorrecte les types de contenu.</p></li>\n<li><p><strong>security.W007</strong> : le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_BROWSER_XSS_FILTER\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_BROWSER_XSS_FILTER</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>, ce qui fait que vos pages ne seront pas servies avec un en-tête <code class=\"docutils literal notranslate\">'x-xss-protection: 1; mode=block'</code>. Vous devriez envisager d’activer cet en-tête pour activer le filtrage XSS des navigateurs et aider ainsi à prévenir les attaques XSS.</p></li>\n<li><p><strong>security.W008</strong> : le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\">SECURE_SSL_REDIRECT</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>. Sauf si votre site doit être accessible à la fois par des connexions SSL et non SSL, il est conseillé de soit définir ce réglage à <code class=\"docutils literal notranslate\">True</code>, soit de configurer un répartiteur de charge ou un serveur mandataire inverse pour rediriger toutes les connexions vers HTTPS.</p></li>\n<li><p><strong>security.W009</strong> : la clé secrète <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\">SECRET_KEY</code></a> contient moins de 50 caractères ou possède moins de 5 caractères différents. Veuillez générer une clé secrète longue et aléatoire, faute de quoi de nombreuses fonctionnalités de Django liées à la sécurité seront vulnérables aux attaques.</p></li>\n<li><p><strong>security.W010</strong> : l’application <a class=\"reference internal\" href=\"/fr/1.9/topics/http/sessions/#module-django.contrib.sessions\" title=\"django.contrib.sessions: Provides session management for Django projects.\"><code class=\"xref py py-mod docutils literal notranslate\">django.contrib.sessions</code></a> se trouve dans votre réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> mais vous n’avez pas défini <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_COOKIE_SECURE</code></a> à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie de session sécurisé complique la tâche des renifleurs de trafic réseau quand ils essaient de s’immiscer dans les sessions des utilisateurs.</p></li>\n<li><p><strong>security.W011</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">django.contrib.sessions.middleware.SessionMiddleware</code></a> figure dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MIDDLEWARE_CLASSES\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE_CLASSES</code></a>, mais vous n’avez pas défini <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_COOKIE_SECURE</code></a> à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie de session sécurisé complique la tâche des renifleurs de trafic réseau quand ils essaient de s’immiscer dans les sessions des utilisateurs.</p></li>\n<li><p><strong>security.W012</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_COOKIE_SECURE</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie de session sécurisé complique la tâche des renifleurs de trafic réseau quand ils essaient de s’immiscer dans les sessions des utilisateurs.</p></li>\n<li><p><strong>security.W013</strong> : l’application <a class=\"reference internal\" href=\"/fr/1.9/topics/http/sessions/#module-django.contrib.sessions\" title=\"django.contrib.sessions: Provides session management for Django projects.\"><code class=\"xref py py-mod docutils literal notranslate\">django.contrib.sessions</code></a> se trouve dans votre réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> mais vous n’avez pas défini <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_COOKIE_HTTPONLY</code></a> à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie de session <code class=\"docutils literal notranslate\">HttpOnly</code> complique la tâche des attaques par script inter-site quand elles essaient de s’immiscer dans les sessions des utilisateurs.</p></li>\n<li><p><strong>security.W014</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">django.contrib.sessions.middleware.SessionMiddleware</code></a> figure dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MIDDLEWARE_CLASSES\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE_CLASSES</code></a>, mais vous n’avez pas défini <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_COOKIE_HTTPONLY</code></a> à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie de session <code class=\"docutils literal notranslate\">HttpOnly</code> complique la tâche des attaques par script inter-site quand elles essaient de s’immiscer dans les sessions des utilisateurs.</p></li>\n<li><p><strong>security.W015</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\">SESSION_COOKIE_HTTPONLY</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie de session <code class=\"docutils literal notranslate\">HttpOnly</code> complique la tâche des attaques par script inter-site quand elles essaient de s’immiscer dans les sessions des utilisateurs.</p></li>\n<li><p><strong>security.W016</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-CSRF_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\">CSRF_COOKIE_SECURE</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie CSRF sécurisé complique la tâche des renifleurs de trafic réseau quand ils essaient de voler le jeton CSRF.</p></li>\n<li><p><strong>security.W017</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-CSRF_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\">CSRF_COOKIE_HTTPONLY</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">True</code>. L’utilisation d’un cookie CSRF <code class=\"docutils literal notranslate\">HttpOnly</code> complique la tâche des attaques par script inter-site quand elles essaient de voler le jeton CSRF.</p></li>\n<li><p><strong>security.W018</strong> : le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\">DEBUG</code></a> ne devrait pas être défini à <code class=\"docutils literal notranslate\">True</code> pour une application Django déployée.</p></li>\n<li><p><strong>security.W019</strong> : <a class=\"reference internal\" href=\"/fr/1.9/ref/middleware/#django.middleware.clickjacking.XFrameOptionsMiddleware\" title=\"django.middleware.clickjacking.XFrameOptionsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">django.middleware.clickjacking.XFrameOptionsMiddleware</code></a> figure dans <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-MIDDLEWARE_CLASSES\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE_CLASSES</code></a>, mais <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-X_FRAME_OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">X_FRAME_OPTIONS</code></a> n’est pas défini à <code class=\"docutils literal notranslate\">'DENY'</code>. La valeur par défaut est <code class=\"docutils literal notranslate\">'SAMEORIGIN'</code>, mais sauf dans les cas où un site a une bonne raison de servir certaines de ses parties dans un cadre, vous devriez modifier ce réglage à <code class=\"docutils literal notranslate\">'DENY'</code>.</p></li>\n<li><p><strong>security.W020</strong> : le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\">ALLOWED_HOSTS</code></a> ne peut pas être vide en déploiement.</p></li>\n</ul>\n</section>\n<section id=\"sites\">\n<h3>Sites<a class=\"heading-anchor\" href=\"#sites\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles suivants sont effectués sur chaque modèle utilisant un gestionnaire <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/sites/#django.contrib.sites.managers.CurrentSiteManager\" title=\"django.contrib.sites.managers.CurrentSiteManager\"><code class=\"xref py py-class docutils literal notranslate\">CurrentSiteManager</code></a>:</p>\n<ul class=\"simple\">\n<li><p><strong>sites.E001</strong> : <code class=\"docutils literal notranslate\">CurrentSiteManager</code> n’a pas réussi à trouver un champ nommé <code class=\"docutils literal notranslate\">&lt;nom_de_champ&gt;</code>.</p></li>\n<li><p><strong>sites.E002</strong> : <code class=\"docutils literal notranslate\">CurrentSiteManager</code> ne peut pas utiliser <code class=\"docutils literal notranslate\">&lt;champ&gt;</code> car ce n’est pas une clé <code class=\"docutils literal notranslate\">ForeignKey</code> ni un champ <code class=\"docutils literal notranslate\">ManyToManyField</code>.</p></li>\n</ul>\n</section>\n<section id=\"database\">\n<h3>Base de données<a class=\"heading-anchor\" href=\"#database\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"mysql\">\n<h4>MySQL<a class=\"heading-anchor\" href=\"#mysql\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Si vous utilisez MySQL, les contrôles suivants seront effectués :</p>\n<ul class=\"simple\">\n<li><p><strong>mysql.E001</strong> : MySQL ne permet pas aux champs <code class=\"docutils literal notranslate\">CharField</code> uniques d’avoir un attribut <code class=\"docutils literal notranslate\">max_length</code> &gt; 255.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"templates\">\n<h3>Gabarits<a class=\"heading-anchor\" href=\"#templates\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles suivants vérifient que le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATES</code></a> est configuré correctement :</p>\n<ul class=\"simple\">\n<li><p><strong>templates.E001</strong> : <code class=\"docutils literal notranslate\">'APP_DIRS': True</code> figure dans votre réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\">TEMPLATES</code></a> mais <code class=\"docutils literal notranslate\">'loaders'</code> est aussi dans <code class=\"docutils literal notranslate\">OPTIONS</code>. Supprimez <code class=\"docutils literal notranslate\">APP_DIRS</code> ou l’option <code class=\"docutils literal notranslate\">'loaders'</code>.</p></li>\n</ul>\n</section>\n<section id=\"caches\">\n<h3>Caches<a class=\"heading-anchor\" href=\"#caches\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles suivants vérifient que le réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\">CACHES</code></a> est configuré correctement :</p>\n<ul class=\"simple\">\n<li><p><strong>caches.E001</strong> : vous devez définir un cache <code class=\"docutils literal notranslate\">'default'</code> dans votre réglage <a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\">CACHES</code></a>.</p></li>\n</ul>\n</section>\n<section id=\"urls\">\n<h3>URL<a class=\"heading-anchor\" href=\"#urls\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Les contrôles suivants sont effectués sur votre configuration d’URL :</p>\n<ul class=\"simple\">\n<li><p><strong>urls.W001</strong> : le motif d’URL <code class=\"docutils literal notranslate\">&lt;pattern&gt;</code> utilise <a class=\"reference internal\" href=\"/fr/1.9/ref/urls/#django.conf.urls.include\" title=\"django.conf.urls.include\"><code class=\"xref py py-func docutils literal notranslate\">include()</code></a> avec une expression <code class=\"docutils literal notranslate\">regex</code> se terminant par <code class=\"docutils literal notranslate\">$</code>. Enlevez le dollar de l’expression <code class=\"docutils literal notranslate\">regex</code> pour éviter des problèmes lors de l’inclusion d’URL.</p></li>\n<li><p><strong>urls.W002</strong> : le motif d’URL <code class=\"docutils literal notranslate\">&lt;pattern&gt;</code> possède une expression <code class=\"docutils literal notranslate\">regex</code> commençant par <code class=\"docutils literal notranslate\">/</code>. Enlevez cette barre oblique car elle n’est pas nécessaire.</p></li>\n<li><p><strong>urls.W003</strong> : le motif d’URL <code class=\"docutils literal notranslate\">&lt;pattern&gt;</code> possède un nom <code class=\"docutils literal notranslate\">name</code> contenant un <code class=\"docutils literal notranslate\">:</code>. Enlevez ces deux-points pour éviter des références d’espaces de noms ambigus.</p></li>\n</ul>\n</section>\n</section>","rootId":"system-check-framework","toc":[{"title":"Référence de l’API","anchor":"api-reference","children":[{"title":"CheckMessage","anchor":"checkmessage","children":[]}]},{"title":"Contrôles prédéfinis","anchor":"builtin-checks","children":[{"title":"Étiquettes prédéfinies","anchor":"builtin-tags","children":[]},{"title":"Vérifications systèmes du noyau","anchor":"core-system-checks","children":[{"title":"Modèles","anchor":"models","children":[]},{"title":"Champs","anchor":"fields","children":[]},{"title":"Champs de type fichier","anchor":"file-fields","children":[]},{"title":"Champs de liaison","anchor":"related-fields","children":[]},{"title":"Signaux","anchor":"signals","children":[]},{"title":"Rétrocompatibilité","anchor":"backwards-compatibility","children":[]}]},{"title":"Interface d’administration","anchor":"admin","children":[{"title":"ModelAdmin","anchor":"modeladmin","children":[]},{"title":"InlineModelAdmin","anchor":"inlinemodeladmin","children":[]},{"title":"GenericInlineModelAdmin","anchor":"genericinlinemodeladmin","children":[]}]},{"title":"Auth","anchor":"auth","children":[]},{"title":"Types de contenu","anchor":"content-types","children":[]},{"title":"Sécurité","anchor":"security","children":[]},{"title":"Sites","anchor":"sites","children":[]},{"title":"Base de données","anchor":"database","children":[{"title":"MySQL","anchor":"mysql","children":[]}]},{"title":"Gabarits","anchor":"templates","children":[]},{"title":"Caches","anchor":"caches","children":[]},{"title":"URL","anchor":"urls","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/1.9/ref/"}],"prev":{"docname":"ref/applications","title":"Applications","url":"/fr/1.9/ref/applications/"},"next":{"docname":"ref/class-based-views/index","title":"API des vues intégrées fondées sur les classes","url":"/fr/1.9/ref/class-based-views/"},"formats":{"html":"/fr/1.9/ref/checks/","markdown":"/fr/1.9/ref/checks.md","json":"/fr/1.9/ref/checks.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/ref/checks.txt","official":"https://docs.djangoproject.com/fr/1.9/ref/checks/","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"]}