Spec-Zone.ru › Django 5.0

Исключения 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 не столкнутся с этим исключением, но оно может быть полезным для реализации пользовательских поисков и выражений.

FullResultSet

exception FullResultSet [source]
Новое в Django 4.2:

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

FieldDoesNotExist

exception FieldDoesNotExist [source]

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

MultipleObjectsReturned

exception MultipleObjectsReturned [source]

Базовый класс исключений Model.MultipleObjectsReturned. Обработчик исключений для 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. Для получения дополнительной информации см. документацию по регистрации.

Изменено в Django 3.2.18:

SuspiciousOperation поднимается, когда отправлено слишком много файлов.

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. Эта константа используется в качестве ключа в словарях, которые в противном случае сопоставляют поля с их соответствующим списком ошибок.

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
exception InterfaceError
exception DatabaseError
exception DataError
exception OperationalError
exception IntegrityError
exception InternalError
exception ProgrammingError
exception NotSupportedError

Оборачивающие классы 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

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.0/ref/exceptions/

Spec-Zone.ru

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