Исключения Django
Django поднимает собственные исключения, а также стандартные исключения Python.
Исключения ядра Django
Классы исключений ядра Django определены в django.core.exceptions.
AppRegistryNotReady
-
exception AppRegistryNotReady[source] -
Это исключение возникает при попытке использовать модели до завершения процесса загрузки приложений процесса загрузки приложений, который инициализирует ORM.
ObjectDoesNotExist
-
exception ObjectDoesNotExist[source] -
Базовый класс исключений
Model.DoesNotExist. Блок обработки исключенийtry/exceptдляObjectDoesNotExistбудет перехватывать исключенияDoesNotExistдля всех моделей.См.
get().
EmptyResultSet
-
exception EmptyResultSet[source] -
Это исключение может быть вызвано во время генерации запроса, если запрос не вернёт никаких результатов. Большинство проектов Django не столкнутся с этим исключением, но оно может быть полезным для реализации пользовательских поисков и выражений.
FullResultSet
-
exception FullResultSet[source] -
Это исключение может быть вызвано во время генерации запроса, если запрос будет соответствовать всем элементам. Большинство проектов Django не столкнутся с этим исключением, но оно может быть полезным для реализации пользовательских поисков и выражений.
FieldDoesNotExist
-
exception FieldDoesNotExist[source] -
Исключение
FieldDoesNotExistвозникает в методе_meta.get_field()модели, когда запрошенного поля нет в модели или в родительских моделях.
MultipleObjectsReturned
-
exception MultipleObjectsReturned[source] -
Базовый класс исключений
Model.MultipleObjectsReturned. Блок обработки исключенийtry/exceptдляMultipleObjectsReturnedбудет перехватывать исключенияMultipleObjectsReturnedдля всех моделей.См.
get().
SuspiciousOperation
-
exception SuspiciousOperation[source] -
Исключение
SuspiciousOperationвозникает, когда пользователь выполнил операцию, которая считается подозрительной с точки зрения безопасности, например, вмешательство в cookie сессии. ПодклассыSuspiciousOperationвключают:DisallowedHostDisallowedModelAdminLookupDisallowedModelAdminToFieldDisallowedRedirectInvalidSessionKeyRequestDataTooBigSuspiciousFileOperationSuspiciousMultipartFormSuspiciousSessionTooManyFieldsSentTooManyFilesSent
Если исключение
SuspiciousOperationдостигает уровня обработчика ASGI/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. Эта константа используется в качестве ключа в словарях, в которых иначе хранятся поля и соответствующие списки ошибок.
BadRequest
-
exception BadRequest[source] -
Исключение
BadRequestвозникает, когда запрос не может быть обработан из-за ошибки клиента. Если исключениеBadRequestдостигает уровня обработчика ASGI/WSGI, оно приводит кHttpResponseBadRequest.
RequestAborted
-
exception RequestAborted[source] -
Исключение
RequestAbortedвозникает, когда тело HTTP, которое считывается обработчиком, прерывается на середине и соединение с клиентом закрывается, или когда клиент не отправляет данные и достигает таймаута, в результате чего сервер закрывает соединение.Это внутреннее исключение модулей обработки HTTP, и вы вряд ли увидите его где-либо ещё. Если вы изменяете код обработки HTTP, вы должны поднимать это исключение, когда сталкиваетесь с прерванным запросом, чтобы убедиться, что сокет закрыт надёжно.
SynchronousOnlyOperation
-
exception SynchronousOnlyOperation[source] -
Исключение
SynchronousOnlyOperationвозникает, когда код, разрешённый только в синхронном Python-коде, вызывается из асинхронного контекста (поток с запущенным асинхронным циклом событий). Эти части Django в основном сильно зависят от потокозащищённости для работы и не работают должным образом с корутинами, использующими один и тот же поток.Если вы пытаетесь вызвать синхронный код из асинхронного потока, создайте синхронный поток и вызовите его в нём. Это можно сделать с помощью
asgiref.sync.sync_to_async().
Исключения обработчика 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, спецификацию API Python для баз данных v2.0.
Согласно PEP 3134, свойство __cause__ устанавливается со значением исходного (базового) исключения базы данных, позволяя получить доступ к любой дополнительной информации.
-
exception models.ProtectedError
Возникает для предотвращения удаления связанных объектов при использовании django.db.models.PROTECT. models.ProtectedError является подклассом IntegrityError.
-
exception models.RestrictedError
Возникает для предотвращения удаления связанных объектов при использовании django.db.models.RESTRICT. models.RestrictedError является подклассом IntegrityError.
Исключения HTTP
Исключения HTTP можно импортировать из django.http.
UnreadablePostError
-
exception UnreadablePostError[source] -
UnreadablePostErrorвозникает, когда пользователь отменяет загрузку.
Исключения сессий
Исключения сессий определены в django.contrib.sessions.exceptions.
SessionInterrupted
-
exception SessionInterrupted[source] -
SessionInterruptedвозникает, когда сессия уничтожается в параллельном запросе. Это подклассBadRequest.
Исключения транзакций
Исключения транзакций определены в 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/5.1/ref/exceptions/