Spec-Zone.ru › Django 4.1

Исключения Django

Django поднимает некоторые свои собственные исключения, а также стандартные исключения Python.

Исключения ядра Django

Классы исключений ядра Django определены в django.core.exceptions.

AppRegistryNotReady

exception AppRegistryNotReady [source]

Это исключение возникает при попытке использовать модели до завершения процесса загрузки приложений, который инициализирует ORM.

ObjectDoesNotExist

exception ObjectDoesNotExist [source]

Базовый класс исключений Model.DoesNotExist. Обработчик исключений для ObjectDoesNotExist поймает исключения DoesNotExist для всех моделей.

См. get().

EmptyResultSet

exception EmptyResultSet [source]

Может быть поднято во время генерации запроса, если запрос не вернёт никаких результатов. Большинство проектов Django не столкнутся с этим исключением, но оно может быть полезно для реализации пользовательских запросов и выражений.

FieldDoesNotExist

exception FieldDoesNotExist [source]

Исключение FieldDoesNotExist поднимается методом _meta.get_field() модели, когда запрошенное поле не существует в модели или родительских моделях.

MultipleObjectsReturned

exception MultipleObjectsReturned [source]

Базовый класс исключений Model.MultipleObjectsReturned. Обработчик исключений для MultipleObjectsReturned поймает исключения MultipleObjectsReturned для всех моделей.

См. get().

SuspiciousOperation

exception SuspiciousOperation [source]

Исключение SuspiciousOperation возникает, когда пользователь выполняет операцию, которая должна считаться подозрительной с точки зрения безопасности, например, вмешательство в куки сессии. Подклассы SuspiciousOperation включают:

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

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

ValidationErrors, которые не относятся к какому-либо конкретному полю в форме или модели, классифицируются как 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

Исключение Resolver404 генерируется resolve(), если путь, переданный resolve() , не сопоставляется с представлением. Это подкласс django.http.Http404.

NoReverseMatch

exception NoReverseMatch

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

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/4.1/ref/exceptions/

Spec-Zone.ru

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