{"title":"模型类参考","version":"5.1","locale":"zh-hans","docname":"ref/models/class","url":"/zh-hans/5.1/ref/models/class/","canonical":"https://djangodocs.dev/zh-hans/5.1/ref/models/class/","summary":"本文档涵盖了 Model 类的功能。关于模型的更多信息，请参见 模型参考指南的完整列表 。 属性 Link to this heading # DoesNotExist Link to this heading # exception Model. DoesNotExist Link to this definition #…","html":"<h1>模型类参考<a class=\"heading-anchor\" href=\"#model-class-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>本文档涵盖了 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/instances/#django.db.models.Model\" title=\"django.db.models.Model\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Model</span></code></a> 类的功能。关于模型的更多信息，请参见 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/\"><span class=\"doc\">模型参考指南的完整列表</span></a>。</p>\n<section id=\"attributes\">\n<h2>属性<a class=\"heading-anchor\" href=\"#attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"doesnotexist\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DoesNotExist</span></code><a class=\"heading-anchor\" href=\"#doesnotexist\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.DoesNotExist\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">exception</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">DoesNotExist</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model.DoesNotExist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当没有找到预期的对象时，ORM 会引发这个异常。例如， <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/querysets/#django.db.models.query.QuerySet.get\" title=\"django.db.models.query.QuerySet.get\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.get()</span></code></a> 将在没有找到给定查找对象时引发该异常。</p>\n<p>Django 提供了一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">DoesNotExist</span></code> 的异常作为每个模型类的属性，用来标识找不到的对象类，允许你为某个模型类捕捉异常。该异常是 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/exceptions/#django.core.exceptions.ObjectDoesNotExist\" title=\"django.core.exceptions.ObjectDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">django.core.exceptions.ObjectDoesNotExist</span></code></a> 的一个子类。</p>\n</dd></dl>\n\n</section>\n<section id=\"multipleobjectsreturned\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleObjectsReturned</span></code><a class=\"heading-anchor\" href=\"#multipleobjectsreturned\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.MultipleObjectsReturned\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">exception</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">MultipleObjectsReturned</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model.MultipleObjectsReturned\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当给定的查找找到多个对象时， <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/querysets/#django.db.models.query.QuerySet.get\" title=\"django.db.models.query.QuerySet.get\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.get()</span></code></a> 会引发这个异常。</p>\n<p>Django 提供了一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleObjectsReturned</span></code> 的异常作为每个模型类的属性，用于识别发现多个对象的对象类，允许你为某个模型类捕捉异常。该异常是 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/exceptions/#django.core.exceptions.MultipleObjectsReturned\" title=\"django.core.exceptions.MultipleObjectsReturned\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">django.core.exceptions.MultipleObjectsReturned</span></code></a> 的一个子类。</p>\n</dd></dl>\n\n</section>\n<section id=\"objects\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">objects</span></code><a class=\"heading-anchor\" href=\"#objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.objects\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">objects</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model.objects\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>每个非抽象的 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/instances/#django.db.models.Model\" title=\"django.db.models.Model\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Model</span></code></a> 类必须有一个 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> 实例添加到其中。Django 确保在你的模型类中至少指定了一个默认的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code>。如果你没有添加自己的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code>，Django 会添加一个属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">objects</span></code>，包含默认的 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> 实例。如果添加自己的 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> 实例属性，则不会出现默认的。考虑下面的例子：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Add manager with another name</span>\n    <span class=\"n\">people</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>关于模型管理器的更多细节，请参见 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/db/managers/\"><span class=\"doc\">管理器</span></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/db/queries/#retrieving-objects\"><span class=\"std std-ref\">检索对象</span></a>。</p>\n</dd></dl>\n\n</section>\n</section>","rootId":"model-class-reference","toc":[{"title":"属性","anchor":"attributes","children":[{"title":"DoesNotExist","anchor":"doesnotexist","children":[]},{"title":"MultipleObjectsReturned","anchor":"multipleobjectsreturned","children":[]},{"title":"objects","anchor":"objects","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/5.1/ref/"},{"docname":"ref/models/index","title":"模型","url":"/zh-hans/5.1/ref/models/"}],"prev":{"docname":"ref/models/relations","title":"关联对象参考","url":"/zh-hans/5.1/ref/models/relations/"},"next":{"docname":"ref/models/options","title":"模型 Meta 选项","url":"/zh-hans/5.1/ref/models/options/"},"formats":{"html":"/zh-hans/5.1/ref/models/class/","markdown":"/zh-hans/5.1/ref/models/class.md","json":"/zh-hans/5.1/ref/models/class.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/ref/models/class.txt","official":"https://docs.djangoproject.com/zh-hans/5.1/ref/models/class/","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","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}