This document covers features of the Model class.
For more information about models, see the complete list of Model
reference guides.
DoesNotExist¶This exception is raised by the ORM when an expected object is not found.
For example, 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 django.core.exceptions.ObjectDoesNotExist.
MultipleObjectsReturned¶This exception is raised by 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
django.core.exceptions.MultipleObjectsReturned.
NotUpdated¶This exception is raised when a forced update of a 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 django.core.exceptions.ObjectNotUpdated and inherits
from django.db.DatabaseError for backward compatibility reasons.
objects¶Each non-abstract Model class must have a
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
Manager instance. If you add your own
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 Managers and Retrieving objects.
Jun 20, 2025