{"title":"FAQ : l’interface d’administration","version":"1.9","locale":"fr","docname":"faq/admin","url":"/fr/1.9/faq/admin/","canonical":"https://djangodocs.dev/fr/1.9/faq/admin/","summary":"Je ne peux pas me connecter. Lorsque je saisis un nom d’utilisateur et un mot de passe valides, cela me renvoie toujours vers la même page de connexion, sans aucun…","html":"<h1>FAQ : l’interface d’administration<a class=\"heading-anchor\" href=\"#faq-the-admin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"i-can-t-log-in-when-i-enter-a-valid-username-and-password-it-just-brings-up-the-login-page-again-with-no-error-messages\">\n<h2>Je ne peux pas me connecter. Lorsque je saisis un nom d’utilisateur et un mot de passe valides, cela me renvoie toujours vers la même page de connexion, sans aucun message d’erreur.<a class=\"heading-anchor\" href=\"#i-can-t-log-in-when-i-enter-a-valid-username-and-password-it-just-brings-up-the-login-page-again-with-no-error-messages\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>The login cookie isn’t being set correctly, because the domain of the cookie\nsent out by Django doesn’t match the domain in your browser. Try setting the\n<a class=\"reference internal\" href=\"/fr/1.9/ref/settings/#std-setting-SESSION_COOKIE_DOMAIN\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_DOMAIN</span></code></a> setting to match your domain. For example, if\nyou’re going to « <a class=\"reference external\" href=\"https://www.example.com/admin/\">https://www.example.com/admin/</a> » in your browser, set\n<code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_DOMAIN</span> <span class=\"pre\">=</span> <span class=\"pre\">'www.example.com'</span></code>.</p>\n</section>\n<section id=\"i-can-t-log-in-when-i-enter-a-valid-username-and-password-it-brings-up-the-login-page-again-with-a-please-enter-a-correct-username-and-password-error\">\n<h2>Je n’arrive pas à me connecter. Quand je saisis un couple nom d’utilisateur/mot de passe valide, j’obtiens à nouveau la page de connexion avec l’erreur : « Saisissez un nom d’utilisateur et un mot de passe valides ».<a class=\"heading-anchor\" href=\"#i-can-t-log-in-when-i-enter-a-valid-username-and-password-it-brings-up-the-login-page-again-with-a-please-enter-a-correct-username-and-password-error\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Si vous êtes certain que votre nom d’utilisateur et votre mot de passe sont corrects, assurez-vous\nque les attributs <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/auth/#django.contrib.auth.models.User.is_active\" title=\"django.contrib.auth.models.User.is_active\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_active</span></code></a> et <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_staff</span></code></a> de votre compte sont définis à True. Le site d’administration permet uniquement l’accès aux utilisateurs qui ont ces deux champs définis à True.</p>\n</section>\n<section id=\"how-do-i-automatically-set-a-field-s-value-to-the-user-who-last-edited-the-object-in-the-admin\">\n<h2>Comment automatiquement définir la valeur d’un champ avec l’utilisateur qui a mis à jour l’objet en dernier dans l’interface d’administration ?<a class=\"heading-anchor\" href=\"#how-do-i-automatically-set-a-field-s-value-to-the-user-who-last-edited-the-object-in-the-admin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>La 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\"><span class=\"pre\">ModelAdmin</span></code></a> offre des points d’extension vous permettant de transformer un objet lorsqu’il est enregistré, à partir des informations de la requête. En récupérant l’utilisateur actuel de la requête et en étendant la méthode <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model\" title=\"django.contrib.admin.ModelAdmin.save_model\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">save_model()</span></code></a>, vous pouvez mettre à jour un objet pour qu’il contienne l’utilisateur qui l’a modifié. Voir <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#model-admin-methods\"><span class=\"std std-ref\">la documentation de ModelAdmin</span></a> pour un exemple.</p>\n</section>\n<section id=\"how-do-i-limit-admin-access-so-that-objects-can-only-be-edited-by-the-users-who-created-them\">\n<h2>Comment limiter l’accès à l’interface d’administration afin que les objets ne puissent être modifiés que par leur créateur ?<a class=\"heading-anchor\" href=\"#how-do-i-limit-admin-access-so-that-objects-can-only-be-edited-by-the-users-who-created-them\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>La 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\"><span class=\"pre\">ModelAdmin</span></code></a> offre aussi des points d’extension permettant de contrôler la visibilité et la capacité d’édition des objets de l’interface d’administration. En utilisant la même astuce que pour l’extraction de l’utilisateur depuis une requête, <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset\" title=\"django.contrib.admin.ModelAdmin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a> et <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.has_change_permission\" title=\"django.contrib.admin.ModelAdmin.has_change_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_change_permission()</span></code></a> peuvent être utilisés pour contrôler la visibilité et la capacité d’édition des objets dans l’interface d’administration.</p>\n</section>\n<section id=\"my-admin-site-css-and-images-showed-up-fine-using-the-development-server-but-they-re-not-displaying-when-using-mod-wsgi\">\n<h2>Le CSS et les images de mon site d’administration s’affichent parfaitement avec le serveur de développement, mais plus quand j’utilise mod_wsgi.<a class=\"heading-anchor\" href=\"#my-admin-site-css-and-images-showed-up-fine-using-the-development-server-but-they-re-not-displaying-when-using-mod-wsgi\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez <a class=\"reference internal\" href=\"/fr/1.9/howto/deployment/wsgi/modwsgi/#serving-the-admin-files\"><span class=\"std std-ref\">service des fichiers de l’administration</span></a> dans la documentation « Comment utiliser Django avec mod_wsgi ».</p>\n</section>\n<section id=\"my-list-filter-contains-a-manytomanyfield-but-the-filter-doesn-t-display\">\n<h2>Mon « list_filter » contient un champ ManyToManyField, mais le filtre ne s’affiche pas.<a class=\"heading-anchor\" href=\"#my-list-filter-contains-a-manytomanyfield-but-the-filter-doesn-t-display\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django ne se fatigue pas à afficher le résultat d’un filtre <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> s’il ne contient pas plus d’un élément lié.</p>\n<p>Par exemple, si votre <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a> inclut <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/sites/\"><span class=\"doc\">sites</span></a> et qu’il n’y a qu’un seul site dans votre base de données, il n’affichera par le filtre « Site ». Dans ce cas, le filtrage par site est inutile.</p>\n</section>\n<section id=\"some-objects-aren-t-appearing-in-the-admin\">\n<h2>Certains objets n’apparaissent pas dans l’interface d’administration.<a class=\"heading-anchor\" href=\"#some-objects-aren-t-appearing-in-the-admin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>L’incohérence du nombre de lignes peut être causée par l’absence de valeurs de clé étrangère ou par un champ de clé étrangère incorrectement défini avec <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.Field.null\" title=\"django.db.models.Field.null\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">null=False</span></code></a>. Si vous avez un enregistrement avec une <a class=\"reference internal\" href=\"/fr/1.9/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a> pointant sur un objet inexistant et que cette clé étrangère est incluse dans <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a>, l’enregistrement ne sera pas affiché dans la liste des objets de l’administration parce que le modèle Django déclare une contrainte d’intégrité non implémentée au niveau de la base de données.</p>\n</section>\n<section id=\"how-can-i-customize-the-functionality-of-the-admin-interface\">\n<h2>Comment puis-je personnaliser les fonctionnalités de l’interface d’administration ?<a class=\"heading-anchor\" href=\"#how-can-i-customize-the-functionality-of-the-admin-interface\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Vous avez plusieurs options. Si vous souhaitez vous greffer au-dessus d’un formulaire d’ajout/édition généré automatiquement par Django, vous pouvez attacher n’importe quel module JavaScript à la page via le <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/admin/#modeladmin-asset-definitions\"><span class=\"std std-ref\">paramètre js</span></a> de la classe Admin du modèle. Ce paramètre est une liste d’URL, de type chaîne de caractères, pointant sur les modules JavaScript qui seront inclus dans le formulaire d’administration via une balise <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;script&gt;</span></code>.</p>\n<p>Si vous souhaitez plus de flexibilité qu’un simple ajustement des formulaires auto-générés, vous êtes libre d’écrire des vues personnalisées pour l’administration. L’interface d’administration est elle-même basée sur Django et vous pouvez écrire des vues personnalisées qui se branchent sur le système d’authentification, vérifient les permissions et font tout ce qu’elles ont besoin de faire.</p>\n<p>Si vous souhaitez modifier l’aspect de l’interface d’administration, lisez la question suivante.</p>\n</section>\n<section id=\"the-dynamically-generated-admin-site-is-ugly-how-can-i-change-it\">\n<h2>Le site d’administration généré dynamiquement ne me plaît pas. Comment puis-je le modifier ?<a class=\"heading-anchor\" href=\"#the-dynamically-generated-admin-site-is-ugly-how-can-i-change-it\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>De notre côté, nous l’apprécions, mais si ce n’est pas votre cas, vous pouvez modifier la présentation du site d’administration en éditant la feuille de style CSS ou les images associées. Le site est construit en utilisant du HTML sémantique et beaucoup de points d’ancrage CSS de sorte que tout changement que vous souhaitez apporter devrait être possible en modifiant la feuille de style.</p>\n</section>\n<section id=\"what-browsers-are-supported-for-using-the-admin\">\n<h2>Quels sont les navigateurs pris en charge par le site d’administration ?<a class=\"heading-anchor\" href=\"#what-browsers-are-supported-for-using-the-admin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Le site d’administration offre une expérience fonctionnelle complète pour les navigateurs <a class=\"reference external\" href=\"https://github.com/yui/yui3/wiki/Graded-Browser-Support\">de niveau A de YUI</a>, à l’exception notable de IE6 qui n’est plus pris en charge.</p>\n<p>Des différences stylistiques mineures <em>peuvent</em> surgir entre les navigateurs pris en charge — par exemple, certains navigateurs ne gèrent pas les coins arrondis. Celles-ci sont considérées comme des variations acceptables en terme de rendu.</p>\n</section>","rootId":"faq-the-admin","toc":[{"title":"Je ne peux pas me connecter. Lorsque je saisis un nom d’utilisateur et un mot de passe valides, cela me renvoie toujours vers la même page de connexion, sans aucun message d’erreur.","anchor":"i-can-t-log-in-when-i-enter-a-valid-username-and-password-it-just-brings-up-the-login-page-again-with-no-error-messages","children":[]},{"title":"Je n’arrive pas à me connecter. Quand je saisis un couple nom d’utilisateur/mot de passe valide, j’obtiens à nouveau la page de connexion avec l’erreur : « Saisissez un nom d’utilisateur et un mot de passe valides ».","anchor":"i-can-t-log-in-when-i-enter-a-valid-username-and-password-it-brings-up-the-login-page-again-with-a-please-enter-a-correct-username-and-password-error","children":[]},{"title":"Comment automatiquement définir la valeur d’un champ avec l’utilisateur qui a mis à jour l’objet en dernier dans l’interface d’administration ?","anchor":"how-do-i-automatically-set-a-field-s-value-to-the-user-who-last-edited-the-object-in-the-admin","children":[]},{"title":"Comment limiter l’accès à l’interface d’administration afin que les objets ne puissent être modifiés que par leur créateur ?","anchor":"how-do-i-limit-admin-access-so-that-objects-can-only-be-edited-by-the-users-who-created-them","children":[]},{"title":"Le CSS et les images de mon site d’administration s’affichent parfaitement avec le serveur de développement, mais plus quand j’utilise mod_wsgi.","anchor":"my-admin-site-css-and-images-showed-up-fine-using-the-development-server-but-they-re-not-displaying-when-using-mod-wsgi","children":[]},{"title":"Mon « list_filter » contient un champ ManyToManyField, mais le filtre ne s’affiche pas.","anchor":"my-list-filter-contains-a-manytomanyfield-but-the-filter-doesn-t-display","children":[]},{"title":"Certains objets n’apparaissent pas dans l’interface d’administration.","anchor":"some-objects-aren-t-appearing-in-the-admin","children":[]},{"title":"Comment puis-je personnaliser les fonctionnalités de l’interface d’administration ?","anchor":"how-can-i-customize-the-functionality-of-the-admin-interface","children":[]},{"title":"Le site d’administration généré dynamiquement ne me plaît pas. Comment puis-je le modifier ?","anchor":"the-dynamically-generated-admin-site-is-ugly-how-can-i-change-it","children":[]},{"title":"Quels sont les navigateurs pris en charge par le site d’administration ?","anchor":"what-browsers-are-supported-for-using-the-admin","children":[]}],"breadcrumbs":[{"docname":"faq/index","title":"FAQ Django","url":"/fr/1.9/faq/"}],"prev":{"docname":"faq/models","title":"FAQ : Bases de données et modèles","url":"/fr/1.9/faq/models/"},"next":{"docname":"faq/contributing","title":"FAQ : contribution au code","url":"/fr/1.9/faq/contributing/"},"formats":{"html":"/fr/1.9/faq/admin/","markdown":"/fr/1.9/faq/admin.md","json":"/fr/1.9/faq/admin.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/faq/admin.txt","official":"https://docs.djangoproject.com/fr/1.9/faq/admin/","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"]}