Исключения 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] -
Это исключение может быть поднято во время генерации запроса, если запрос не вернёт результатов. Большинство проектов 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включают: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
Ошибки, которые не относятся к конкретному полю в форме или модели, классифицируются как 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 в вашей конфигурации 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 для исключений базы данных ведут себя точно так же, как и базовые исключения базы данных. Для получения дополнительной информации см. 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.0/ref/exceptions/