Исключения Django
Django поднимает некоторые собственные исключения, а также стандартные исключения Python.
Исключения ядра Django
Классы исключений ядра Django определены в django.core.exceptions.
AppRegistryNotReady
-
exception AppRegistryNotReady[source] -
Это исключение возникает при попытке использовать модели до завершения процесса загрузки приложений, который инициализирует ORM.
ObjectDoesNotExist
-
exception ObjectDoesNotExist[source] -
Базовый класс исключений
DoesNotExist; обработчикtry/exceptдляObjectDoesNotExistпоймает исключенияDoesNotExistдля всех моделей.Дополнительную информацию об исключениях
ObjectDoesNotExistиDoesNotExistсм. вget().
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возникает, когда пользователь выполнил операцию, которая должна считаться подозрительной с точки зрения безопасности, например, вмешательство в куки сессии. ПодклассыSuspiciousOperationвключают:DisallowedHostDisallowedModelAdminLookupDisallowedModelAdminToFieldDisallowedRedirectInvalidSessionKeyRequestDataTooBigSuspiciousFileOperationSuspiciousMultipartFormSuspiciousSessionTooManyFieldsSent
Если исключение
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.1/ref/exceptions/