{"title":"FAQ : l’interface d’administration","version":"5.0","locale":"fr","docname":"faq/admin","url":"/fr/5.0/faq/admin/","canonical":"https://djangodocs.dev/fr/5.0/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>Le cookie de connexion n’est pas défini correctement car le domaine du cookie envoyé par Django ne correspond pas au domaine du navigateur. Essayez de définir le réglage <a class=\"reference internal\" href=\"/fr/5.0/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> de sorte que le domaine corresponde à votre domaine. Par exemple, si vous utilisez l’adresse « <a class=\"reference external\" href=\"https://www.example.com/admin/\">https://www.example.com/admin/</a> » dans votre navigateur, définissez <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/5.0/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/5.0/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/5.0/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/5.0/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/5.0/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/5.0/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/5.0/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/5.0/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/5.0/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 aucun élément lié.</p>\n<p>Par exemple, si votre <a class=\"reference internal\" href=\"/fr/5.0/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/5.0/ref/contrib/sites/\"><span class=\"doc\">sites</span></a> et qu’il n’y a aucun 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/5.0/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/5.0/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/5.0/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/5.0/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é que ce qu’on peut faire en ajustant 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<span id=\"admin-browser-support\"></span><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 pleinement fonctionnelle avec les versions récentes des navigateurs modernes et respectueux des standards. Pour les ordinateurs de bureau, cela inclut Chrome, Edge, Firefox, Opera, Safari et d’autres encore.</p>\n<p>Pour les appareils mobiles et les tablettes, le site d’administration fournit une interface adaptative pour les navigateurs respectueux des standards. Cela inclut la majorité des navigateurs à la fois pour Android et iOS.</p>\n<p>En fonction de la prise en charge des fonctionnalités, des différences stylistiques mineures <em>peuvent</em> surgir entre les navigateurs. Celles-ci sont considérées comme des variations acceptables en terme de rendu.</p>\n</section>\n<section id=\"what-assistive-technologies-are-supported-for-using-the-admin\">\n<h2>Quelles sont les aides techniques prises en charge par le site d’administration ?<a class=\"heading-anchor\" href=\"#what-assistive-technologies-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 est conçu pour être compatible avec un large éventail de technologies d’assistance, mais il existe actuellement de nombreux obstacles. L’objectif est de prendre en charge toutes les dernières versions des principales technologies d’assistance, y compris Dragon, JAWS, NVDA, Orca, TalkBack, Voice Control, VoiceOver iOS, VoiceOver macOS, Windows Contrast Themes, ZoomText et les loupes d’écran.</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":[]},{"title":"Quelles sont les aides techniques prises en charge par le site d’administration ?","anchor":"what-assistive-technologies-are-supported-for-using-the-admin","children":[]}],"breadcrumbs":[{"docname":"faq/index","title":"FAQ Django","url":"/fr/5.0/faq/"}],"prev":{"docname":"faq/models","title":"FAQ : Bases de données et modèles","url":"/fr/5.0/faq/models/"},"next":{"docname":"faq/contributing","title":"FAQ : contribution au code","url":"/fr/5.0/faq/contributing/"},"formats":{"html":"/fr/5.0/faq/admin/","markdown":"/fr/5.0/faq/admin.md","json":"/fr/5.0/faq/admin.json"},"source":"https://github.com/django/django/blob/stable/5.0.x/docs/faq/admin.txt","official":"https://docs.djangoproject.com/fr/5.0/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","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}