django 1.8 官方文檔翻譯:6-3 Django異常

Django異常

DJango會拋出一些它本身的異常,以及Python的標準異常。python

Django核心異常

Django核心異常類定義在django.core.exceptions中。數據庫

ObjectDoesNotExist

_exception _ObjectDoesNotExist[source]django

DoesNotExist異常的基類;對ObjectDoesNotExisttry/except會爲全部模型捕獲到全部DoesNotExist 異常。安全

ObjectDoesNotExistDoesNotExist的更多信息請見 get()服務器

FieldDoesNotExist

_exception _FieldDoesNotExist[source]cookie

當被請求的字段在模型或模型的父類中不存在時,FieldDoesNotExist異常由模型的 _meta.get_field()方法拋出。框架

Changed in Django 1.8:測試

以前的版本中,異常只在django.db.models.fields中定義,並非公共API的一部分。url

MultipleObjectsReturned

_exception _MultipleObjectsReturned[source]日誌

MultipleObjectsReturned異常由查詢產生,當預期只有一個對象,可是有多個對象返回的時候。這個異常的一個基礎版本在django.core.exceptions中提供。每一個模型類都包含一個它的子類版本,它能夠用於定義返回多個對象的特定的對象類型。

詳見get()

SuspiciousOperation

_exception _SuspiciousOperation[source]

當用戶進行的操做在安全方面可疑的時候,拋出SuspiciousOperation異常,例如篡改會話cookie。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異常。

ImproperlyConfigured

_exception _ImproperlyConfigured[source]

DJango配置不當時產生ImproperlyConfigured異常 -- 例如,settings.py中的值不正確或者不可解析。

FieldError

_exception _FieldError[source]

FieldError異常當模型字段上出現問題時產生。它會由如下緣由形成:

  • 模型中的字段與抽象基類中相同名稱的字段衝突。

  • 排序形成了一個死循環。

  • 關鍵詞不能由過濾器參數解析。

  • 字段不能由查詢參數中的關鍵詞決定。

  • 鏈接(join)不能在指定對象上使用。

  • 字段名稱不可用。

  • 查詢包含了無效的 order_by參數。

ValidationError

_exception _ValidationError[source]

當表單或模型字段驗證失敗時拋出ValidationError異常。關於驗證的更多信息,請見_表單字段驗證_, _模型字段驗證__驗證器參考_

NON_FIELD_ERRORS

NON_FIELD_ERRORS

在表單或者模型中不屬於特定字段的ValidationError 被歸類爲NON_FIELD_ERRORS。This constant is used as a key in dictionaries that otherwise map fields to their respective list of errors.

URL解析器異常

URL解析器異常定義在django.core.urlresolvers中。

Resolver404

_exception _Resolver404[source]

當向 resolve() 傳遞的路徑不映射到視圖的時候,Resolver404異常由django.core.urlresolvers.resolve()產生。 它是 django.http.Http404的子類。

NoReverseMatch

_exception _NoReverseMatch[source]

當你的URLconf中的一個匹配的URL不能基於提供的參數識別時,NoReverseMatch 異常由 django.core.urlresolvers 產生。

Database Exceptions

數據庫異常由django.db導入。

Django封裝了標準的數據庫異常,以便確保你的DJango代碼擁有這些類的通用實現。

_exception _Error

_exception _InterfaceError

_exception _DatabaseError

_exception _DataError

_exception _OperationalError

_exception _IntegrityError

_exception _InternalError

_exception _ProgrammingError

_exception _NotSupportedError

Django數據庫異常的包裝器的行爲和底層的數據庫異常同樣。詳見PEP 249,Python 數據庫 API 說明 v2.0。

按照 PEP 3134__cause__屬性會在原生(底層)的數據庫異常中設置,容許訪問所提供的任何附加信息。(注意這一屬性在Python 2和 3下面均可用,雖然 PEP 3134一般只用於Python 3。)

_exception _models.`ProtectedError`

使用django.db.models.PROTECT時,拋出異常來阻止所引用對象的刪除。models.ProtectedError is a subclass of IntegrityError.

Http異常

HTTP異常由django.http導入。

UnreadablePostError

_exception _UnreadablePostError

用戶取消上傳時拋出UnreadablePostError異常。

事務異常

事務異常定義在django.db.transaction中。

TransactionManagementError

_exception _TransactionManagementError[source]

對於數據庫事務相關的任何問題,拋出TransactionManagementError異常。

測試框架異常

由DJango django.test 包提供的異常。

RedirectCycleError

_exception _client.`RedirectCycleError`

New in Django 1.8\.

當測試客戶端檢測到重定向的循環或者過長的鏈時,拋出RedirectCycleError異常。

Python異常

Django在適當的時候也會拋出Python的內建異常。進一步的信息請見

相關文章
相關標籤/搜索