Spec-Zone.ru › Django 5.1

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

  • DisallowedHost
  • DisallowedModelAdminLookup
  • DisallowedModelAdminToField
  • DisallowedRedirect
  • InvalidSessionKey
  • RequestDataTooBig
  • SuspiciousFileOperation
  • SuspiciousMultipartForm
  • SuspiciousSession
  • TooManyFieldsSent
  • TooManyFilesSent

Если исключение 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/

Spec-Zone.ru

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