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