Spec-Zone.ru › Django 1.11

Исключения 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 не столкнутся с этой ошибкой, но она может быть полезна для реализации пользовательских поисков и выражений.

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

В более старых версиях его можно импортировать только из django.db.models.sql.

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.

END_OF_DOCUMENT_MARKER

Устаревшее начиная с версии 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 для исключений базы данных ведут себя точно так же, как и базовые исключения базы данных. Дополнительную информацию см. в спецификации Python Database API 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.11/ref/exceptions/

Spec-Zone.ru

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