• 3.1
  • 3.2
  • 5.0
  • Версия документации: 6.1

Справочник класса Model

Данный документ рассматривает возможности класса Model. Для получения дополнительной информации о моделях обратитесь к полному списку руководств по Model.

Атрибуты

DoesNotExist

exception Model.DoesNotExist

Это исключение вызывается ORM, когда ожидаемый объект не найден. Например, QuerySet.get() вызовет его, если по заданным запросам объект не найден.

Django предоставляет исключение DoesNotExist в качестве атрибута каждого класса модели для идентификации класса объекта, который не удалось найти, что позволяет вам перехватывать исключения для определенного класса модели. Исключением является подкласс django.core.Exceptions.ObjectDoesNotExist.

MultipleObjectsReturned

exception Model.MultipleObjectsReturned

Это исключение вызывается QuerySet.get(), когда для заданных поисков найдено несколько объектов.

Django предоставляет исключение MultipleObjectsReturned в качестве атрибута каждого класса модели для идентификации класса объекта, для которого было найдено несколько объектов, что позволяет вам перехватывать исключения для определенного класса модели. Исключением является подкласс django.core.Exceptions.MultipleObjectsReturned.

Необновлено

New in Django 6.0.
exception Model.NotUpdated

Это исключение возникает, когда принудительное обновление экземпляра Model не влияет ни на какие строки.

Django предоставляет исключение NotUpdated в качестве атрибута каждого класса модели для идентификации класса объекта, который не может быть обновлен, что позволяет вам перехватывать исключения для определенного класса модели. Исключением является подкласс django.core.Exceptions.ObjectNotUpdated и наследуется от django.db.DatabaseError по причинам обратной совместимости.

objects

Model.objects

Каждый неабстрактный класс Model должен иметь экземпляр класса Manager. Django проверяет, что ваш класс модели обладает как минимум стандартным Manager. Если вы не добавляли собственный класс Manager, то Django добавит атрибут objects, содержащий экземпляр стандартного класса Manager. Если же вы добавили экземпляр собственного класса Manager, то стандартный класс не будет подключен. Рассмотрим это на следующем примере:

from django.db import models


class Person(models.Model):
    # Add manager with another name
    people = models.Manager()

Подробности о менеджерах моделей смотрите в :Менеджеры </topics/db/managers> и Выборка retrieving.

Back to Top