{"title":"Classes mixins pour objet unique","version":"3.1","locale":"fr","docname":"ref/class-based-views/mixins-single-object","url":"/fr/3.1/ref/class-based-views/mixins-single-object/","canonical":"https://djangodocs.dev/fr/3.1/ref/class-based-views/mixins-single-object/","summary":"SingleObjectMixin Lien vers cette rubrique # class django.views.generic.detail. SingleObjectMixin Lien vers cette définition # Fournit un mécanisme pour rechercher…","html":"<h1>Classes mixins pour objet unique<a class=\"heading-anchor\" href=\"#single-object-mixins\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"singleobjectmixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">SingleObjectMixin</span></code><a class=\"heading-anchor\" href=\"#singleobjectmixin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.detail.</span></span><span class=\"sig-name descname\"><span class=\"pre\">SingleObjectMixin</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Fournit un mécanisme pour rechercher un objet associé à la requête HTTP en cours.</p>\n<p><strong>Méthodes et attributs</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.model\">\n<span class=\"sig-name descname\"><span class=\"pre\">model</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.model\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le modèle pour lequel cette vue va afficher des données. Indiquer <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span> <span class=\"pre\">=</span> <span class=\"pre\">Foo</span></code> revient au même que de définir <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span> <span class=\"pre\">=</span> <span class=\"pre\">Foo.objects.all()</span></code>, où <code class=\"docutils literal notranslate\"><span class=\"pre\">objects</span></code> correspond au <a class=\"reference internal\" href=\"/fr/3.1/topics/db/managers/#default-managers\"><span class=\"std std-ref\">gestionnaire par défaut</span></a> de <code class=\"docutils literal notranslate\"><span class=\"pre\">Foo</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">queryset</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.queryset\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Un objet <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> représentant les objets. Lorsqu’elle est renseignée, la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> écrase la valeur fournie pour <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.model\" title=\"django.views.generic.detail.SingleObjectMixin.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> est un attribut de classe avec une valeur <em>modifiable</em>, il faut donc être très prudent lorsqu’on l’utilise directement. Avant de l’utiliser, appelez sa méthode <a class=\"reference internal\" href=\"/fr/3.1/ref/models/querysets/#django.db.models.query.QuerySet.all\" title=\"django.db.models.query.QuerySet.all\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">all()</span></code></a> ou obtenez-la avec <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_queryset\" title=\"django.views.generic.detail.SingleObjectMixin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a> qui se charge du clonage en arrière-plan.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.slug_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">slug_field</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.slug_field\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom du champ de modèle qui contient le slug. Par défaut, <code class=\"docutils literal notranslate\"><span class=\"pre\">slug_field</span></code> est <code class=\"docutils literal notranslate\"><span class=\"pre\">'slug'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.slug_url_kwarg\">\n<span class=\"sig-name descname\"><span class=\"pre\">slug_url_kwarg</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.slug_url_kwarg\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom du paramètre nommé dans l’URL contenant le slug. Par défaut, <code class=\"docutils literal notranslate\"><span class=\"pre\">slug_url_kwarg</span></code> est <code class=\"docutils literal notranslate\"><span class=\"pre\">'slug'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.pk_url_kwarg\">\n<span class=\"sig-name descname\"><span class=\"pre\">pk_url_kwarg</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.pk_url_kwarg\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom du paramètre nommé dans l’URL contenant la clé primaire. Par défaut, <code class=\"docutils literal notranslate\"><span class=\"pre\">pk_url_kwarg</span></code> est <code class=\"docutils literal notranslate\"><span class=\"pre\">'pk'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.context_object_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">context_object_name</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.context_object_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Désigne le nom de la variable à utiliser dans le contexte.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.query_pk_and_slug\">\n<span class=\"sig-name descname\"><span class=\"pre\">query_pk_and_slug</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.query_pk_and_slug\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Si <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, indique à <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_object\" title=\"django.views.generic.detail.SingleObjectMixin.get_object\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_object()</span></code></a> de rechercher un objet à la fois avec la clé primaire et le « slug ». Vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> par défaut.</p>\n<p>Cet attribut peut contribuer à prévenir les attaques de <a class=\"reference external\" href=\"https://wiki.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References\">référence directe d’objet non sécurisé</a>. Lorsque des applications permettent d’accéder à des objets individuels par une clé primaire séquentielle, un attaquant pourrait deviner toutes les URL par force brute, obtenant par là-même une liste de tous les objets de l’application. Si ceux qui peuvent accéder aux objets individuels ne devraient pas pouvoir obtenir toute la liste, la définition de <code class=\"docutils literal notranslate\"><span class=\"pre\">query_pk_and_slug</span></code> à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> aide à empêcher la découverte des URL du fait que chaque URL nécessite deux paramètres corrects et non séquentiels. On pourrait obtenir un résultat semblable en exigeant un slug unique, mais ce système permet d’avoir des slugs non uniques.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.get_object\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_object</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.get_object\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie l’objet unique que cette vue va afficher. Si <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> est indiqué, ce jeu de requête est utilisé comme source des objets ; sinon, <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_queryset\" title=\"django.views.generic.detail.SingleObjectMixin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a> est appelée. <code class=\"docutils literal notranslate\"><span class=\"pre\">get_object()</span></code> recherche un paramètre <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.pk_url_kwarg\" title=\"django.views.generic.detail.SingleObjectMixin.pk_url_kwarg\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">pk_url_kwarg</span></code></a> dans les paramètres de la vue ; si ce paramètre est trouvé, cette méthode effectue une sélection basée sur la clé primaire avec cette valeur. Dans le cas contraire, elle consulte le paramètre <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.slug_url_kwarg\" title=\"django.views.generic.detail.SingleObjectMixin.slug_url_kwarg\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">slug_url_kwarg</span></code></a> et effectue une sélection basée sur le slug avec la valeur <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.slug_field\" title=\"django.views.generic.detail.SingleObjectMixin.slug_field\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">slug_field</span></code></a>.</p>\n<p>Lorsque <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.query_pk_and_slug\" title=\"django.views.generic.detail.SingleObjectMixin.query_pk_and_slug\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">query_pk_and_slug</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">get_object()</span></code> rechercher son objet à la fois avec la clé primaire et le « slug ».</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.get_queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_queryset</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.get_queryset\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie le jeu de requête qui sera utilisé pour récupérer l’objet que cette vue va afficher. Par défaut, <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_queryset\" title=\"django.views.generic.detail.SingleObjectMixin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a> renvoie la valeur de l’attribut <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.queryset\" title=\"django.views.generic.detail.SingleObjectMixin.queryset\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">queryset</span></code></a> s’il est défini, sinon elle construit un objet <a class=\"reference internal\" href=\"/fr/3.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> en appelant la méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">all()</span></code> sur le gestionnaire par défaut de l’attribut <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.model\" title=\"django.views.generic.detail.SingleObjectMixin.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.get_context_object_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context_object_name</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.get_context_object_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie le nom de la variable de contexte utilisée pour contenir les données que cette vue manipule. Si <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.context_object_name\" title=\"django.views.generic.detail.SingleObjectMixin.context_object_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">context_object_name</span></code></a> n’est pas défini, le nom du contexte correspondra au nom de modèle des objets contenus dans le jeu de requête. Par exemple, pour le modèle <code class=\"docutils literal notranslate\"><span class=\"pre\">Article</span></code>, la variable de contexte sera nommée <code class=\"docutils literal notranslate\"><span class=\"pre\">'article'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.get_context_data\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.get_context_data\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie les données du contexte pour afficher l’objet.</p>\n<p>L’implémentation de base de cette méthode exige que l’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code> soit défini par la vue (même avec <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>). Assurez-vous de le définir si vous utilisez cette classe mixin sans l’une des vues intégrées qui le fait.</p>\n<p>Renvoie un dictionnaire contenant :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object</span></code>: l’object affiché par cette vue (<code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code>).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">context_object_name</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code> sera aussi stocké sous le nom renvoyé par <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_context_object_name\" title=\"django.views.generic.detail.SingleObjectMixin.get_context_object_name\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_object_name()</span></code></a>, qui équivaut par défaut au nom de modèle en minuscules.</p></li>\n</ul>\n<aside class=\"admonition-context-variables-override-values-from-template-context-processors admonition\">\n<p class=\"admonition-title\">Les variables de contexte écrasent les valeurs provenant des processeurs de contexte des gabarits</p>\n<p>Toute variable de <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_context_data\" title=\"django.views.generic.detail.SingleObjectMixin.get_context_data\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_data()</span></code></a> a la priorité sur les variable de contexte provenant des <a class=\"reference internal\" href=\"/fr/3.1/ref/templates/api/#subclassing-context-requestcontext\"><span class=\"std std-ref\">processeurs de contexte</span></a>. Par exemple, si une vue définit l’attribut <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.model\" title=\"django.views.generic.detail.SingleObjectMixin.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a> à <a class=\"reference internal\" href=\"/fr/3.1/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a>, le nom d’objet de contexte par défaut <code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code> écrase la variable <code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code> définie par le processeur de contexte <a class=\"reference internal\" href=\"/fr/3.1/ref/templates/api/#django.contrib.auth.context_processors.auth\" title=\"django.contrib.auth.context_processors.auth\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.auth()</span></code></a>. Utilisez <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.get_context_object_name\" title=\"django.views.generic.detail.SingleObjectMixin.get_context_object_name\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context_object_name()</span></code></a> pour éviter cette collision.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectMixin.get_slug_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_slug_field</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectMixin.get_slug_field\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie le nom d’un champ de type slug à utiliser lors de la sélection par slug. Par défaut, cette méthode renvoie la valeur de <a class=\"reference internal\" href=\"#django.views.generic.detail.SingleObjectMixin.slug_field\" title=\"django.views.generic.detail.SingleObjectMixin.slug_field\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">slug_field</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"singleobjecttemplateresponsemixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">SingleObjectTemplateResponseMixin</span></code><a class=\"heading-anchor\" href=\"#singleobjecttemplateresponsemixin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.detail.</span></span><span class=\"sig-name descname\"><span class=\"pre\">SingleObjectTemplateResponseMixin</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectTemplateResponseMixin\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une classe mixin produisant une réponse basée sur un gabarit pour les vues opérant sur une seule instance d’objet. Exige que la vue dans laquelle elle est intégrée fournisse <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code>, l’instance d’objet sur laquelle la vue opère. <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code> est généralement une instance d’un modèle Django, mais ce n’est pas une règle absolue. Elle peut valoir <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> si la vue est en cours de construction d’une nouvelle instance.</p>\n<p><strong>Étend</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/fr/3.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponseMixin</span></code></a></p></li>\n</ul>\n<p><strong>Méthodes et attributs</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_field</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le champ de l’instance d’objet actuelle pouvant être utilisé pour déterminer le nom d’un gabarit potentiel. Si <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_field</span></code> lui-même ou la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_field</span></code> pour l’instance d’objet actuelle vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, l’objet ne sera pas utilisé pour trouver un nom de gabarit potentiel.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_suffix</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le suffixe à ajouter au nom de gabarit auto-généré. Le suffixe par défaut est <code class=\"docutils literal notranslate\"><span class=\"pre\">_detail</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.detail.SingleObjectTemplateResponseMixin.get_template_names\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_template_names</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.detail.SingleObjectTemplateResponseMixin.get_template_names\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une liste de noms de gabarits potentiels. Cette liste contient :</p>\n<ul class=\"simple\">\n<li><p>la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> de la vue (s’il est défini)</p></li>\n<li><p>le contenu du champ <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_field</span></code> de l’instance d’objet sur laquelle la vue opère (si disponible)</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;nom_app&gt;/&lt;nom_modèle&gt;&lt;suffixe_gabarit&gt;.html</span></code></p></li>\n</ul>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"single-object-mixins","toc":[{"title":"SingleObjectMixin","anchor":"singleobjectmixin","children":[]},{"title":"SingleObjectTemplateResponseMixin","anchor":"singleobjecttemplateresponsemixin","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/3.1/ref/"},{"docname":"ref/class-based-views/index","title":"API des vues intégrées fondées sur les classes","url":"/fr/3.1/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"Vues « mixins » fondées sur les classes","url":"/fr/3.1/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins-simple","title":"Mixins simples","url":"/fr/3.1/ref/class-based-views/mixins-simple/"},"next":{"docname":"ref/class-based-views/mixins-multiple-object","title":"Classes mixins pour objets multiples","url":"/fr/3.1/ref/class-based-views/mixins-multiple-object/"},"formats":{"html":"/fr/3.1/ref/class-based-views/mixins-single-object/","markdown":"/fr/3.1/ref/class-based-views/mixins-single-object.md","json":"/fr/3.1/ref/class-based-views/mixins-single-object.json"},"source":"https://github.com/django/django/blob/stable/3.1.x/docs/ref/class-based-views/mixins-single-object.txt","official":"https://docs.djangoproject.com/fr/3.1/ref/class-based-views/mixins-single-object/","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","pt-br","ko","es","el","pl"]}