blob: c36eeaa34f24a888f0d20b56216ed9ca67afd8c2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
=====================
Model class reference
=====================
.. currentmodule:: django.db.models
This document covers features of the :class:`~django.db.models.Model` class.
For more information about models, see :doc:`the complete list of Model
reference guides </ref/models/index>`.
Attributes
==========
``DoesNotExist``
----------------
.. exception:: Model.DoesNotExist
This exception is raised by the ORM when an expected object is not found.
For example, :meth:`.QuerySet.get` will raise it when no object is found
for the given lookups.
Django provides a ``DoesNotExist`` exception as an attribute of each model
class to identify the class of object that could not be found, allowing you
to catch exceptions for a particular model class. The exception is a
subclass of :exc:`django.core.exceptions.ObjectDoesNotExist`.
``MultipleObjectsReturned``
---------------------------
.. exception:: Model.MultipleObjectsReturned
This exception is raised by :meth:`.QuerySet.get` when multiple objects are
found for the given lookups.
Django provides a ``MultipleObjectsReturned`` exception as an attribute of
each model class to identify the class of object for which multiple objects
were found, allowing you to catch exceptions for a particular model class.
The exception is a subclass of
:exc:`django.core.exceptions.MultipleObjectsReturned`.
``NotUpdated``
--------------
.. versionadded:: 6.0
.. exception:: Model.NotUpdated
This exception is raised when :ref:`a forced update
<ref-models-force-insert>` of a :class:`~django.db.models.Model` instance
does not affect any rows.
Django provides a ``NotUpdated`` exception as an attribute of each model
class to identify the class of object that could not be updated, allowing
you to catch exceptions for a particular model class. The exception is a
subclass of :exc:`django.core.exceptions.ObjectNotUpdated` and inherits
from :exc:`django.db.DatabaseError` for backward compatibility reasons.
``objects``
-----------
.. attribute:: Model.objects
Each non-abstract :class:`~django.db.models.Model` class must have a
:class:`~django.db.models.Manager` instance added to it.
Django ensures that in your model class you have at least a
default ``Manager`` specified. If you don't add your own ``Manager``,
Django will add an attribute ``objects`` containing default
:class:`~django.db.models.Manager` instance. If you add your own
:class:`~django.db.models.Manager` instance attribute, the default one does
not appear. Consider the following example::
from django.db import models
class Person(models.Model):
# Add manager with another name
people = models.Manager()
For more details on model managers see :doc:`Managers
</topics/db/managers>` and :ref:`Retrieving objects <retrieving-objects>`.
|