Spec-Zone.ru › Django 1.9

Исключения Django

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

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

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

ObjectDoesNotExist

exception ObjectDoesNotExist [source]

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

См. get() для получения дополнительной информации об исключениях ObjectDoesNotExist и DoesNotExist.

FieldDoesNotExist

exception FieldDoesNotExist [source]

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

Это исключение ранее было определено только в django.db.models.fields и не входило в общедоступный API.

MultipleObjectsReturned

exception MultipleObjectsReturned [source]

Исключение MultipleObjectsReturned генерируется запросом, если ожидается только один объект, но возвращается несколько объектов. Базовая версия этого исключения предоставляется в django.core.exceptions; каждый класс модели содержит подклассированную версию, которую можно использовать для идентификации конкретного типа объекта, вернувшего несколько объектов.

См. get() для получения дополнительной информации.

SuspiciousOperation

exception SuspiciousOperation [source]

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

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

Если исключение SuspiciousOperation достигает уровня обработчика WSGI, оно регистрируется на уровне Error и приводит к HttpResponseBadRequest. См. документацию по регистрации для получения дополнительной информации.

PermissionDenied

exception PermissionDenied [source]

Исключение PermissionDenied генерируется, когда у пользователя нет разрешения на выполнение запрошенного действия.

ViewDoesNotExist

exception ViewDoesNotExist [source]

Исключение ViewDoesNotExist генерируется django.core.urlresolvers, когда запрашиваемый вид не существует.

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

Исключения решателя URL

Исключения решателя URL определены в django.core.urlresolvers.

Resolver404

exception Resolver404 [source]

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

NoReverseMatch

exception NoReverseMatch [source]

Исключение NoReverseMatch генерируется django.core.urlresolvers, когда соответствующий URL в вашем URLconf не может быть идентифицирован на основе предоставленных параметров.

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

Исключения базы данных могут быть импортированы из django.db.

END_OF_DOCUMENT_MARKER

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 для баз данных версии 2.0.

В соответствии с PEP 3134, свойство __cause__ устанавливается с оригинальным (базовым) исключением базы данных, что позволяет получить доступ к любой дополнительной информации. (Обратите внимание, что это свойство доступно как в Python 2, так и в Python 3, хотя PEP 3134 обычно применяется только к Python 3.)

exception models.ProtectedError

Вызывается для предотвращения удаления связанных объектов при использовании django.db.models.PROTECT. models.ProtectedError является подклассом IntegrityError.

Исключения HTTP

Исключения HTTP можно импортировать из django.http.

UnreadablePostError

exception UnreadablePostError [source]

UnreadablePostError генерируется, когда пользователь отменяет загрузку.

Исключения транзакций

Исключения транзакций определены в 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/1.9/ref/exceptions/

Spec-Zone.ru

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