# Django 3.2.12 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`.

### `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.