Django异常

    Django核心异常类定义在中。

    exception ObjectDoesNotExist[source]

    异常的基类;对ObjectDoesNotExisttry/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文档。