Spec-Zone.ru › Django 2.2

Исключения 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.

EmptyResultSet

exception EmptyResultSet [source]

EmptyResultSet может быть поднято во время генерации запроса, если запрос не вернёт результатов. Большинство проектов Django не столкнутся с этой ошибкой, но она может быть полезна для реализации пользовательских поисков и выражений.

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.

Resolver404

exception Resolver404 [source]

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

NoReverseMatch

exception NoReverseMatch [source]

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

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

Исключения базы данных можно импортировать из 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 для исключений базы данных ведут себя точно так же, как и базовые исключения базы данных. Для получения дополнительной информации см. PEP 249, спецификацию Python Database API v2.0.

В соответствии с PEP 3134, устанавливается атрибут __cause__, содержащий исходное (базовое) исключение базы данных, позволяя получить доступ к дополнительной информации.

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/2.2/ref/exceptions/

Spec-Zone.ru

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