DJango會拋出一些它本身的異常,以及Python的標準異常。python
Django核心異常類定義在django.core.exceptions
中。數據庫
_exception _ObjectDoesNotExist
[source]django
DoesNotExist
異常的基類;對ObjectDoesNotExist
的try/except
會爲全部模型捕獲到全部DoesNotExist
異常。安全
ObjectDoesNotExist
和 DoesNotExist
的更多信息請見 get()
。服務器
_exception _FieldDoesNotExist
[source]cookie
當被請求的字段在模型或模型的父類中不存在時,FieldDoesNotExist
異常由模型的 _meta.get_field()
方法拋出。框架
Changed in Django 1.8:測試
以前的版本中,異常只在django.db.models.fields
中定義,並非公共API的一部分。url
_exception _MultipleObjectsReturned
[source]日誌
MultipleObjectsReturned
異常由查詢產生,當預期只有一個對象,可是有多個對象返回的時候。這個異常的一個基礎版本在django.core.exceptions
中提供。每一個模型類都包含一個它的子類版本,它能夠用於定義返回多個對象的特定的對象類型。
詳見get()
。
_exception _SuspiciousOperation
[source]
當用戶進行的操做在安全方面可疑的時候,拋出SuspiciousOperation
異常,例如篡改會話cookie。SuspiciousOperation
的子類包括:
DisallowedHost
DisallowedModelAdminLookup
DisallowedModelAdminToField
DisallowedRedirect
InvalidSessionKey
SuspiciousFileOperation
SuspiciousMultipartForm
SuspiciousSession
若是SuspiciousOperation
異常到達了WSGI處理器層,它會在Error
層記錄,並致使HttpResponseBadRequest
異常。
詳見_日誌文檔_。
_exception _PermissionDenied
[source]
PermissionDenied
異常當用戶不被容許來執行請求的操做時產生。
_exception _ViewDoesNotExist
[source]
當所請求的視圖不存在時,ViewDoesNotExist
異常由 django.core.urlresolvers
產生。
_exception _MiddlewareNotUsed
[source]
當中間件沒有在服務器配置中出現時,產生MiddlewareNotUsed
異常。
_exception _ImproperlyConfigured
[source]
DJango配置不當時產生ImproperlyConfigured
異常 -- 例如,settings.py
中的值不正確或者不可解析。
_exception _FieldError
[source]
FieldError
異常當模型字段上出現問題時產生。它會由如下緣由形成:
模型中的字段與抽象基類中相同名稱的字段衝突。
排序形成了一個死循環。
關鍵詞不能由過濾器參數解析。
字段不能由查詢參數中的關鍵詞決定。
鏈接(join)不能在指定對象上使用。
字段名稱不可用。
查詢包含了無效的 order_by參數。
_exception _ValidationError
[source]
當表單或模型字段驗證失敗時拋出ValidationError
異常。關於驗證的更多信息,請見_表單字段驗證_, _模型字段驗證_ 和 _驗證器參考_。
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解析器異常定義在django.core.urlresolvers
中。
_exception _Resolver404
[source]
當向 resolve()
傳遞的路徑不映射到視圖的時候,Resolver404
異常由django.core.urlresolvers.resolve()
產生。 它是 django.http.Http404
的子類。
_exception _NoReverseMatch
[source]
當你的URLconf中的一個匹配的URL不能基於提供的參數識別時,NoReverseMatch
異常由 django.core.urlresolvers
產生。
數據庫異常由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異常由django.http
導入。
_exception _UnreadablePostError
用戶取消上傳時拋出UnreadablePostError
異常。
事務異常定義在django.db.transaction
中。
_exception _TransactionManagementError
[source]
對於數據庫事務相關的任何問題,拋出TransactionManagementError
異常。
由DJango django.test
包提供的異常。
_exception _client.
`RedirectCycleError`
New in Django 1.8\.
當測試客戶端檢測到重定向的循環或者過長的鏈時,拋出RedirectCycleError
異常。
Django在適當的時候也會拋出Python的內建異常。進一步的信息請見