Исключения 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включают:DisallowedHostDisallowedModelAdminLookupDisallowedModelAdminToFieldDisallowedRedirectInvalidSessionKeySuspiciousFileOperationSuspiciousMultipartFormSuspiciousSession
Если исключение
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
ValidationErrors, которые не относятся к конкретному полю в форме или модели, классифицируются как 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.
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 v2.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.8/ref/exceptions/