Исключения 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включают: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.2/ref/exceptions/