Spec-Zone.ru › Django 4.2

Исключения Django

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

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

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

AppRegistryNotReady

exception AppRegistryNotReady [source]

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

ObjectDoesNotExist

exception ObjectDoesNotExist [source]

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

См. 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 для всех моделей может быть осуществлена с помощью try/except для MultipleObjectsReturned.

См. get().

SuspiciousOperation

exception SuspiciousOperation [source]

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

Исключения базы данных

Исключения базы данных могут быть импортированы из 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 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/4.2/ref/exceptions/

Spec-Zone.ru

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