Django 异常

    Django 核心异常类定义在 django.core.exceptions 中。

    exception AppRegistryNotReady

    当在初始化 ORM 的 应用加载过程 完成之前,试图使用模型时,就会引发这个异常。

    ObjectDoesNotExist

    exception ObjectDoesNotExist

    Model.DoesNotExist 异常的基类。一个对 ObjectDoesNotExisttry/except 将捕获对所有模型的 异常。

    参见 get()

    EmptyResultSet

    exception EmptyResultSet

    如果一个查询不返回任何结果,那么 EmptyResultSet 可能会在生成查询的过程中被触发。大多数 Django 项目不会遇到这个异常,但它可能对实现自定义查找和表达式很有用。

    FieldDoesNotExist

    exception FieldDoesNotExist[源代码]

    当请求的字段在模型或模型的父类上不存在时,模型的 _meta.get_field() 方法会引发 FieldDoesNotExist 异常。

    MultipleObjectsReturned

    exception MultipleObjectsReturned

    Model.MultipleObjectsReturned 异常的基类。一个对 MultipleObjectsReturnedtry/except 将捕获对所有模型的 异常。

    参见 get()

    SuspiciousOperation

    exception SuspiciousOperation

    SuspiciousOperation 异常是在用户进行了从安全角度看应该被认为是可疑的操作时产生的,例如篡改会话 cookie。 的子类包括:

    • DisallowedHost
    • DisallowedModelAdminToField
    • DisallowedRedirect
    • InvalidSessionKey
    • RequestDataTooBig
    • SuspiciousFileOperation
    • SuspiciousMultipartForm
    • SuspiciousSession
    • TooManyFieldsSent

    如果一个 SuspiciousOperation 异常达到 ASGI/WSGI 处理程序级别,它将被记录在 Error 级别,并导致一个 。更多信息请参见 :doc:`日志文档 。

    PermissionDenied

    exception PermissionDenied[源代码]

    异常是在用户没有权限执行所请求的操作时发生的。

    exception ViewDoesNotExist[源代码]

    当请求的视图不存在时, 异常由 django.urls 引发。

    MiddlewareNotUsed

    exception MiddlewareNotUsed

    当服务器配置中没有使用中间件时,会引发 MiddlewareNotUsed 异常。

    ImproperlyConfigured

    exception ImproperlyConfigured

    ImproperlyConfigured 异常是在 Django 配置不当的情况下产生的,例如,settings.py 中的一个值不正确或无法解析。

    FieldError

    异常是在模型字段出现问题时引发的。发生这种情况有几种原因:

    • 模型中的一个字段与抽象基类中的同名字段发生冲突
    • 无限循环是由排序引起的
    • 不能从过滤器参数中解析关键字
    • 一个字段不能通过查询参数中的关键字来确定
    • 不允许在指定字段上进行 join
    • 字段名无效
    • 查询包含无效的 order_by 参数

    ValidationError

    exception ValidationError[源代码]

    当数据未能通过表单或模型字段验证时,会引发 异常。关于验证的更多信息,请参见 表单和字段验证、 和 验证器参考

    NON_FIELD_ERRORS

    NON_FIELD_ERRORS

    ValidationError 不属于表格或模型中某一特定字段的错误被归类为 NON_FIELD_ERRORS。这个常量在字典中被用作键,否则就会将字段映射到它们各自的错误列表中。

    BadRequest

    exception BadRequest

    New in Django Development version.

    The BadRequest exception is raised when the request cannot be processed due to a client error. If a BadRequest exception reaches the ASGI/WSGI handler level it results in a .

    RequestAborted

    exception RequestAborted[源代码]

    异常是在处理程序读入的 HTTP body 在传输流中被切断,客户端连接关闭,或者客户端不发送数据,遇到超时,服务器关闭连接时引发的。

    它是 HTTP 处理模块内部的,你不太可能在其他地方看到它。如果你正在修改 HTTP 处理代码,你应该在遇到一个中止的请求时提出这个问题,以确保 socket 被干净地关闭。

    exception SynchronousOnlyOperation[源代码]

    当只有在同步 Python 代码中才允许的代码被从异步上下文(一个有正在运行的异步事件循环的线程)中调用时,会引发 异常。Django 的这些部分一般都严重依赖线程安全来运行,在协程共享同一个线程的情况下无法正常工作。

    如果你想从一个异步线程中调用只用于同步的代码,那么就创建一个同步线程并在该线程中调用它。你可以通过 来实现。

    URL 解析器异常

    URL 解析器异常定义在 django.urls 中。

    Resolver404

    exception Resolver404

    如果传递给 resolve() 的路径没有映射到视图,那么 Resolver404 异常就会被 引发。这是 django.http.Http404 的一个子类。

    NoReverseMatch

    exception NoReverseMatch

    异常是由 django.urls 引发的,当你的 URLconf 中不能根据提供的参数识别出一个匹配的 URL 时会引发。

    数据库异常可以从 django.db 导入。

    Django 封装了标准的数据库异常,这样你的 Django 代码就可以保证这些类的通用实现。

    exception Error

    exception InterfaceError

    exception DatabaseError

    exception OperationalError

    exception IntegrityError

    exception InternalError

    exception ProgrammingError

    exception NotSupportedError

    数据库异常的 Django 包装器的行为与底层数据库异常完全相同。更多信息请参见 ,Python 数据库 API 规范 v2.0。

    根据 PEP 3134__cause__ 属性与原始(基础)数据库异常一起设置,允许访问提供的任何附加信息。

    exception models.``ProtectedError

    当使用 时,为了防止删除引用对象而引发的 models.ProtectedError 是 的子类。

    exception models.``RestrictedError

    当使用 django.db.models.RESTRICT 时,为了防止删除引用对象而引发的 是 IntegrityError 的子类。

    Http 异常

    Http 异常可以从 django.http 导入。

    UnreadablePostError

    exception UnreadablePostError

    在用户取消上传时引发。

    Sessions exceptions are defined in django.contrib.sessions.exceptions.

    SessionInterrupted

    exception SessionInterrupted[源代码]

    New in Django Development version.

    is raised when a session is destroyed in a concurrent request. It’s a subclass of BadRequest.

    事务异常

    事务异常在 django.db.transaction 中定义。

    TransactionManagementError

    exception TransactionManagementError

    是针对与数据库事务有关的任何和所有问题提出的。

    django.test 包提供的异常。

    RedirectCycleError

    exception client.``RedirectCycleError

    RedirectCycleError 当测试客户端检测到一个循环或过长的重定向链时,就会引发。

    Python 异常