Исключения 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.
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 для исключений базы данных ведут себя точно так же, как и базовые исключения базы данных. Для получения дополнительной информации см. спецификацию API Python Database Specification 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.10/ref/exceptions/