{"title":"单对象混入","version":"6.1","locale":"zh-hans","docname":"ref/class-based-views/mixins-single-object","url":"/zh-hans/6.1/ref/class-based-views/mixins-single-object/","canonical":"https://djangodocs.dev/zh-hans/6.1/ref/class-based-views/mixins-single-object/","summary":"SingleObjectMixin Link to this heading # class django.views.generic.detail. SingleObjectMixin Link to this definition # 提供一个查找与当前 HTTP 请求相关联的对象的机制。 方法和属性 model Link…","html":"<h1>单对象混入<a class=\"heading-anchor\" href=\"#single-object-mixins\"><span class=\"visually-hidden\">Link to this heading</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\">Link to this heading</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>提供一个查找与当前 HTTP 请求相关联的对象的机制。</p>\n<p><strong>方法和属性</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>该视图将显示数据的模型。指定 <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span> <span class=\"pre\">=</span> <span class=\"pre\">Foo</span></code> 实际上等于指定 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span> <span class=\"pre\">=</span> <span class=\"pre\">Foo.objects.all()</span></code>，其中 <code class=\"docutils literal notranslate\"><span class=\"pre\">objects</span></code> 代表 <code class=\"docutils literal notranslate\"><span class=\"pre\">Foo</span></code> 的 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/db/managers/#default-managers\"><span class=\"std std-ref\">默认管理器</span></a>。</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>代表对象的 <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>。如果提供，<code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 的值将取代为 <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\">Warning</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 是一个类属性，它的值是 <em>可变的</em>，所以直接使用它时一定要注意。在使用它之前，要么调用它的 <a class=\"reference internal\" href=\"/zh-hans/6.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> 方法，要么用 <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> 检索它，它在幕后负责克隆。</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>模型上包含 slug 的字段名称。默认情况下，<code class=\"docutils literal notranslate\"><span class=\"pre\">slug_field</span></code> 是 <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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>包含 slug 的 URLConf 关键字参数的名称。默认情况下，<code class=\"docutils literal notranslate\"><span class=\"pre\">slug_url_kwarg</span></code> 是 <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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>包含主键的 URLConf 关键字参数的名称，默认情况下，<code class=\"docutils literal notranslate\"><span class=\"pre\">pk_url_kwarg</span></code> 是 <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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定在上下文中使用的变量名称。</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, causes <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> to perform its lookup using\nboth the primary key and the slug. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n<p>这个属性可以帮助减轻 <a class=\"reference external\" href=\"https://wiki.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References\">不安全的直接对象引用</a> 攻击。当应用程序允许通过顺序主键访问单个对象时，攻击者可以粗暴地强行猜测所有 URL，从而获得应用程序中所有对象的列表。如果应该阻止访问单个对象的用户获得这个列表，将 <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> 将有助于防止URL的猜测，因为每个 URL 需要两个正确的、非顺序的参数。使用唯一的 slug 可以达到同样的目的，但是这个方案允许你使用非唯一的 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_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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回该视图要显示的单个对象。如果提供了 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code>，将使用该查询集作为对象的来源；否则，将使用 <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>。<code class=\"docutils literal notranslate\"><span class=\"pre\">get_object()</span></code> 在视图的参数中寻找一个 <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> 参数；如果找到这个参数，这个方法就使用这个值执行基于主键的查找。如果没有找到这个参数，则查找 <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> 参数，并使用 :attr:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>slug_field ` 执行 slug 查找。</p>\n<p>当 <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> 为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> 时，<code class=\"docutils literal notranslate\"><span class=\"pre\">get_object()</span></code> 将使用主键和 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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回用于检索该视图将显示的对象的查询集。默认情况下， <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> 返回 <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> 属性的值，如果它被设置，否则它通过调用 <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> 属性的默认管理器上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">all()</span></code> 方法来构造一个 <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">querySet</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_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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回上下文变量名，该变量将用于包含该视图正在操作的数据。如果 <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> 没有被设置，上下文名称将由查询集组成的模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code> 构建。例如，模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">Article</span></code> 的上下文对象将命名为 <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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回用于显示对象的上下文数据。</p>\n<p>该方法的基本实现要求视图设置 <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code> 属性（即使 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>）。如果你在使用这个混入时没有使用内置视图，请务必这样做。</p>\n<p>它返回一个包含这些内容的字典：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object</span></code>：该视图显示的对象（<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> 也将存储在 <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> 返回的名称下，默认为模型名称的小写版本。</p></li>\n</ul>\n<aside class=\"admonition-context-variables-override-values-from-template-context-processors admonition\">\n<p class=\"admonition-title\">上下文变量覆盖了模板上下文处理程序的值</p>\n<p>任何来自 <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 class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/api/#subclassing-context-requestcontext\"><span class=\"std std-ref\">上下文处理器</span></a> 的上下文变量。例如，如果你的视图将 <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=\"/zh-hans/6.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>，那么默认的上下文对象名 <code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code> 将覆盖 <a class=\"reference internal\" href=\"/zh-hans/6.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> 上下文处理器中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code> 变量。使用 <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> 来避免冲突。</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回一个 slug 字段的名称，用于通过 slug 查找。默认情况下，返回 <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\">Link to this heading</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个混入类，为对单个对象实例进行操作的视图执行基于模板的响应渲染。要求与之混合的视图提供 <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code>，即该视图操作的对象实例。<code class=\"docutils literal notranslate\"><span class=\"pre\">self.object</span></code> 通常是，但不要求是 Django 模型的实例。如果视图正在构建一个新的实例，它可能是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>。</p>\n<p><strong>扩展</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/6.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>方法和属性</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当前对象实例上的字段，可用于确定候选模板的名称。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_field</span></code> 本身或当前对象实例上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_field</span></code> 的值为 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>，则该对象不会被用于候选模板名称。</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>自动生成的候选模板名称的后缀。默认后缀是 <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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a list of candidate template names. Return a list containing\n<code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>, if set on the value. Otherwise, return a list\ncontaining:</p>\n<ul class=\"simple\">\n<li><p>视图操作的对象实例上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_field</span></code> 字段的内容（如果有的话）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;/&lt;model_name&gt;&lt;template_name_suffix&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":"API 参考","url":"/zh-hans/6.1/ref/"},{"docname":"ref/class-based-views/index","title":"内置基于类的视图 API","url":"/zh-hans/6.1/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"基于类的视图混入","url":"/zh-hans/6.1/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins-simple","title":"简单混入","url":"/zh-hans/6.1/ref/class-based-views/mixins-simple/"},"next":{"docname":"ref/class-based-views/mixins-multiple-object","title":"多对象混入","url":"/zh-hans/6.1/ref/class-based-views/mixins-multiple-object/"},"formats":{"html":"/zh-hans/6.1/ref/class-based-views/mixins-single-object/","markdown":"/zh-hans/6.1/ref/class-based-views/mixins-single-object.md","json":"/zh-hans/6.1/ref/class-based-views/mixins-single-object.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/class-based-views/mixins-single-object.txt","official":"https://docs.djangoproject.com/zh-hans/6.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"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}