Spec-Zone.ru › Django 3.1

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

FieldDoesNotExist

exception FieldDoesNotExist [source]

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

MultipleObjectsReturned

exception MultipleObjectsReturned [source]

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

См. get().

SuspiciousOperation

exception SuspiciousOperation [source]

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

ValidationError которые не относятся к конкретному полю в форме или модели, классифицируются как NON_FIELD_ERRORS. Эта константа используется в качестве ключа в словарях, которые в противном случае сопоставляют поля со списком их ошибок.

RequestAborted

exception RequestAborted [source]
Новое в Django 3.0.

Исключение RequestAborted возникает, когда тело HTTP, которое считывается обработчиком, прерывается на середине потока, а клиентское соединение закрывается, или когда клиент не отправляет данные и срабатывает таймаут, при котором сервер закрывает соединение.

Это внутреннее исключение модулей обработки HTTP, и вы вряд ли увидите его где-то еще. Если вы изменяете код обработки HTTP, вы должны генерировать это исключение при обнаружении прерванного запроса, чтобы убедиться, что сокет закрывается корректно.

SynchronousOnlyOperation

exception SynchronousOnlyOperation [source]
Новое в Django 3.0.

Исключение 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.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/3.1/ref/exceptions/

Spec-Zone.ru

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