# Django 5.2.9 documentation

# Model class reference

This document covers features of the `Model` class. For more information about models, see the complete list of Model reference guides.

## Attributes

### `DoesNotExist`

exception Model.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`

exception Model.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`

New in Django 6.0.

exception Model.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`

Model.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.