Исключения Django
Django поднимает собственные исключения, а также стандартные исключения Python.
Исключения ядра Django
Классы исключений ядра Django определены в django.core.exceptions.
AppRegistryNotReady
-
exception AppRegistryNotReady[source] -
Это исключение возникает при попытке использовать модели до завершения процесса загрузки приложений, который инициализирует ORM.
ObjectDoesNotExist
-
exception ObjectDoesNotExist[source] -
Базовый класс исключений
DoesNotExist; обработчикtry/exceptдляObjectDoesNotExistбудет ловить исключенияDoesNotExistдля всех моделей.См.
get()для дополнительной информации об исключенияхObjectDoesNotExistиDoesNotExist.
EmptyResultSet
-
exception EmptyResultSet[source] -
EmptyResultSetможет быть поднято во время генерации запроса, если запрос не вернет никаких результатов. Большинство проектов Django не столкнутся с этой ошибкой, но она может быть полезна для реализации пользовательских поисков и выражений.Изменено в Django 1.11:В более старых версиях его можно импортировать только из
django.db.models.sql.
FieldDoesNotExist
-
exception FieldDoesNotExist[source] -
Исключение
FieldDoesNotExistгенерируется методом_meta.get_field()модели, когда запрошенное поле отсутствует в модели или в родительских моделях.
MultipleObjectsReturned
-
exception MultipleObjectsReturned[source] -
Исключение
MultipleObjectsReturnedгенерируется запросом, если ожидается только один объект, но возвращаются несколько объектов. Базовая версия этого исключения предоставляется вdjango.core.exceptions; каждый класс модели содержит подклассированную версию, которая может использоваться для идентификации конкретного типа объекта, вернувшего несколько объектов.См.
get()для дополнительной информации.
SuspiciousOperation
-
exception SuspiciousOperation[source] -
Исключение
SuspiciousOperationвозникает, когда пользователь выполнил операцию, которая должна рассматриваться как подозрительная с точки зрения безопасности, например, подмена cookie сессии. ПодклассыSuspiciousOperationвключают:DisallowedHostDisallowedModelAdminLookupDisallowedModelAdminToFieldDisallowedRedirectInvalidSessionKeyRequestDataTooBigSuspiciousFileOperationSuspiciousMultipartFormSuspiciousSessionTooManyFieldsSent
Если исключение
SuspiciousOperationдостигает уровня обработчика 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. Эта константа используется в качестве ключа в словарях, которые в противном случае сопоставляют поля с их соответствующим списком ошибок.
Исключения обработчика URL
Исключения обработчика URL определены в django.urls.
Устаревшее начиная с версии 1.10: В более старых версиях эти исключения расположены в django.core.urlresolvers. Импорт из старого расположения будет работать до Django 2.0.
Resolver404
-
exception Resolver404[source] -
Исключение
Resolver404генерируетсяresolve(), если путь, переданный вresolve(), не сопоставляется с представлением. Это подклассdjango.http.Http404.
NoReverseMatch
-
exception NoReverseMatch[source] -
Исключение
NoReverseMatchгенерируетсяdjango.urls, когда URL, соответствующий вашей конфигурации URL, не может быть идентифицирован на основе предоставленных параметров.
Базовые исключения БД
Базовые исключения БД можно импортировать из 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 для исключений базы данных ведут себя точно так же, как и базовые исключения базы данных. Дополнительную информацию см. в спецификации Python Database API v2.0 PEP 249.
В соответствии с PEP 3134, устанавливается атрибут __cause__, содержащий исходное (базовое) исключение базы данных, что позволяет получить доступ к любой дополнительной информации. (Обратите внимание, что этот атрибут доступен как в Python 2, так и в Python 3, хотя PEP 3134 обычно применяется только к Python 3. Чтобы избежать неожиданных различий с Python 3, Django также будет гарантировать, что исключение, доступное через __cause__, имеет пригодный для использования атрибут __traceback__.)
Был добавлен атрибут __traceback__.
-
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.11/ref/exceptions/