Django异常
Django核心异常类定义在中。
exception ObjectDoesNotExist
[source]
异常的基类;对ObjectDoesNotExist
的try/except
会为所有模型捕获到所有DoesNotExist
异常。
和 DoesNotExist
的更多信息请见 。
FieldDoesNotExist
exception FieldDoesNotExist
当被请求的字段在模型或模型的父类中不存在时,FieldDoesNotExist
异常由模型的 _meta.get_field()
方法抛出。
Changed in Django 1.8:
之前的版本中,异常只在django.db.models.fields
中定义,并不是公共API的一部分。
MultipleObjectsReturned
exception MultipleObjectsReturned
MultipleObjectsReturned
异常由查询产生,当预期只有一个对象,但是有多个对象返回的时候。这个异常的一个基础版本在中提供。每个模型类都包含一个它的子类版本,它可以用于定义返回多个对象的特定的对象类型。
详见get()
。
SuspiciousOperation
exception SuspiciousOperation
[source]
当用户进行的操作在安全方面可疑的时候,抛出异常,例如篡改会话cookie。SuspiciousOperation
的子类包括:
DisallowedHost
DisallowedModelAdminLookup
DisallowedRedirect
InvalidSessionKey
SuspiciousFileOperation
SuspiciousMultipartForm
如果SuspiciousOperation
异常到达了WSGI处理器层,它会在Error
层记录,并导致HttpResponseBadRequest
异常。
详见。
PermissionDenied
exception PermissionDenied
PermissionDenied
异常当用户不被允许来执行请求的操作时产生。
exception ViewDoesNotExist
当所请求的视图不存在时,ViewDoesNotExist
异常由 产生。
MiddlewareNotUsed
exception MiddlewareNotUsed
当中间件没有在服务器配置中出现时,产生MiddlewareNotUsed
异常。
ImproperlyConfigured
DJango配置不当时产生ImproperlyConfigured
异常 — 例如,settings.py
中的值不正确或者不可解析。
FieldError
exception FieldError
[source]
异常当模型字段上出现问题时产生。它会由以下原因造成:
- 模型中的字段与抽象基类中相同名称的字段冲突。
- 排序造成了一个死循环。
- 关键词不能由过滤器参数解析。
- 字段不能由查询参数中的关键词决定。
- 连接(join)不能在指定对象上使用。
- 字段名称不可用。
- 查询包含了无效的 order_by参数。
ValidationError
exception ValidationError
当表单或模型字段验证失败时抛出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
中。
exception Resolver404
[source]
当向 resolve()
传递的路径不映射到视图的时候,异常由django.core.urlresolvers.resolve()
产生。 它是 的子类。
NoReverseMatch
exception
当你的URLconf中的一个匹配的URL不能基于提供的参数识别时,NoReverseMatch
异常由 产生。
数据库异常由django.db
导入。
Django封装了标准的数据库异常,以便确保你的DJango代码拥有这些类的通用实现。
exception Error
exception InterfaceError
exception DatabaseError
exception DataError
exception OperationalError
exception IntegrityError
exception ProgrammingError
exception NotSupportedError
Django数据库异常的包装器的行为和底层的数据库异常一样。详见PEP 249,Python 数据库 API 说明 v2.0。
按照 ,__cause__
属性会在原生(底层)的数据库异常中设置,允许访问所提供的任何附加信息。(注意这一属性在Python 2和 3下面都可用,虽然 PEP 3134通常只用于Python 3。)
exception models.``ProtectedError
使用时,抛出异常来阻止所引用对象的删除。models.
ProtectedError is a subclass of .
Http异常
HTTP异常由django.http
导入。
UnreadablePostError
exception UnreadablePostError
用户取消上传时抛出UnreadablePostError
异常。
事务异常定义在django.db.transaction
中。
TransactionManagementError
exception TransactionManagementError
[source]
对于数据库事务相关的任何问题,抛出异常。
测试框架异常
由DJango django.test
包提供的异常。
RedirectCycleError
exception client.``RedirectCycleError
New in Django 1.8.
当测试客户端检测到重定向的循环或者过长的链时,抛出RedirectCycleError
异常。
Django在适当的时候也会抛出Python的内建异常。进一步的信息请见的Python文档。