Spec-Zone.ru › Django 1.10

Исключения Django

Django поднимает собственные исключения, а также стандартные исключения Python.

Исключения ядра Django

Классы исключений ядра Django определены в django.core.exceptions.

AppRegistryNotReady

exception AppRegistryNotReady [source]

Это исключение возникает при попытке использования моделей до завершения процесса загрузки приложений, который инициализирует ORM.

ObjectDoesNotExist

exception ObjectDoesNotExist [source]

Базовый класс исключений DoesNotExist; обработчик try/except для ObjectDoesNotExist будет перехватывать исключения DoesNotExist для всех моделей.

См. get() для получения дополнительной информации об исключениях ObjectDoesNotExist и DoesNotExist.

FieldDoesNotExist

exception FieldDoesNotExist [source]

Исключение FieldDoesNotExist генерируется методом модели _meta.get_field() при отсутствии запрошенного поля в модели или родительских моделях.

MultipleObjectsReturned

exception MultipleObjectsReturned [source]

Исключение MultipleObjectsReturned генерируется запросом, если ожидается только один объект, но возвращается несколько объектов. Базовая версия этого исключения предоставляется в django.core.exceptions; каждый класс модели содержит подклассированную версию, которая может использоваться для идентификации конкретного типа объекта, вернувшего несколько объектов.

См. get() для получения дополнительной информации.

SuspiciousOperation

exception SuspiciousOperation [source]

Исключение SuspiciousOperation генерируется, когда пользователь выполняет операцию, которую следует считать подозрительной с точки зрения безопасности, например, вмешательство в cookie сессии. Подклассы SuspiciousOperation включают:

  • DisallowedHost
  • DisallowedModelAdminLookup
  • DisallowedModelAdminToField
  • DisallowedRedirect
  • InvalidSessionKey
  • RequestDataTooBig
  • SuspiciousFileOperation
  • SuspiciousMultipartForm
  • SuspiciousSession
  • TooManyFieldsSent

Если исключение SuspiciousOperation достигает уровня обработчика WSGI, оно регистрируется на уровне Error и приводит к HttpResponseBadRequest. Подробнее см. в документации по регистрации.

PermissionDenied

exception PermissionDenied [source]

Исключение PermissionDenied генерируется, когда у пользователя нет разрешения на выполнение запрошенного действия.

ViewDoesNotExist

exception ViewDoesNotExist [source]

Исключение ViewDoesNotExist генерируется django.urls, если запрошенного представления не существует.

MiddlewareNotUsed

exception MiddlewareNotUsed [source]

Исключение MiddlewareNotUsed генерируется, когда middleware не используется в конфигурации сервера.

ImproperlyConfigured

exception ImproperlyConfigured [source]

Исключение ImproperlyConfigured возникает, когда Django сконфигурирован неправильно, например, если значение в settings.py неверное или неразборчивое.

FieldError

exception FieldError [source]

Исключение FieldError возникает при проблеме с полем модели. Это может произойти по нескольким причинам:

  • Поле в модели конфликтует с полем с тем же именем из абстрактного базового класса
  • Возникает бесконечный цикл из-за сортировки
  • Ключевое слово не может быть проанализировано из параметров фильтра
  • Поле не может быть определено из ключевого слова в параметрах запроса
  • Соединение не разрешено для указанного поля
  • Название поля некорректно
  • Запрос содержит неверные аргументы order_by

ValidationError

exception ValidationError [source]

Исключение ValidationError генерируется, когда данные не проходят проверку формы или поля модели. Дополнительную информацию о проверке см. в Проверке форм и полей, Проверке полей модели и Справочнике по валидаторам.

NON_FIELD_ERRORS

NON_FIELD_ERRORS

ValidationError которые не относятся к конкретному полю в форме или модели, классифицируются как NON_FIELD_ERRORS. Эта константа используется в качестве ключа в словарях, которые в противном случае сопоставляют поля со списком их ошибок.

Исключения обработчика URL

Исключения обработчика URL определены в django.urls.

Устарело начиная с версии 1.10: В более ранних версиях эти исключения находились в django.core.urlresolvers. Импорт из старого расположения будет работать до Django 2.0.

Resolver404

exception Resolver404 [source]

Исключение Resolver404 генерируется resolve(), если путь, переданный resolve(), не сопоставляется с представлением. Это подкласс django.http.Http404.

NoReverseMatch

exception NoReverseMatch [source]

Исключение NoReverseMatch генерируется модулем django.urls, когда по заданным параметрам не удается найти соответствующий URL в вашей конфигурации URL.

Исключения базы данных

Исключения базы данных можно импортировать из django.db.

Django оборачивает стандартные исключения базы данных, чтобы ваш код Django гарантированно использовал общий способ работы с этими классами.

exception Error [source]
exception InterfaceError [source]
exception DatabaseError [source]
exception DataError [source]
exception OperationalError [source]
exception IntegrityError [source]
exception InternalError [source]
exception ProgrammingError [source]
exception NotSupportedError [source]

Оборачивающие классы Django для исключений базы данных ведут себя точно так же, как и базовые исключения базы данных. Для получения дополнительной информации см. спецификацию API Python Database Specification v2.0, PEP 249.

В соответствии с PEP 3134, атрибут __cause__ устанавливается с исходным (базовым) исключением базы данных, что позволяет получить доступ к любой дополнительной информации. (Обратите внимание, что этот атрибут доступен как в Python 2, так и в Python 3, хотя PEP 3134 обычно применяется только к Python 3. Для избежания неожиданных различий с Python 3, Django также гарантирует, что исключение, доступное через __cause__, имеет доступный атрибут __traceback__.)

Изменено в Django 1.10:

Был добавлен атрибут __traceback__.

exception models.ProtectedError

Выбрасывается для предотвращения удаления ссылочных объектов при использовании django.db.models.PROTECT. models.ProtectedError является подклассом IntegrityError.

Исключения HTTP

Исключения HTTP можно импортировать из django.http.

UnreadablePostError

exception UnreadablePostError [source]

Исключение UnreadablePostError возникает, когда пользователь отменяет загрузку.

Исключения транзакций

Исключения транзакций определены в django.db.transaction.

TransactionManagementError

exception TransactionManagementError [source]

Исключение TransactionManagementError возникает при любых проблемах, связанных с транзакциями базы данных.

Исключения фреймворка тестирования

Исключения, предоставляемые пакетом django.test.

RedirectCycleError

exception client.RedirectCycleError

Исключение RedirectCycleError возникает, когда клиент тестирования обнаруживает цикл или слишком длинную цепочку перенаправлений.

Исключения Python

Django также поднимает встроенные исключения Python, когда это уместно. Подробную информацию об встроенных исключениях см. в документации Python.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.10/ref/exceptions/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API