Djangoの例外—Djangoのドキュメント

提供:Dev Guides
< DjangoDjango/docs/2.2.x/ref/exceptions
移動先:案内検索

Djangoの例外

Djangoは、標準のPython例外だけでなく、独自の例外もいくつか発生します。

Djangoコアの例外

Djangoコア例外クラスはdjango.core.exceptionsで定義されています。

AppRegistryNotReady

exception AppRegistryNotReady
この例外は、ORMを初期化するアプリの読み込みプロセスが完了する前にモデルを使用しようとすると発生します。


ObjectDoesNotExist

exception ObjectDoesNotExist

DoesNotExist 例外の基本クラス。 ObjectDoesNotExisttry/exceptは、すべてのモデルの DoesNotExist 例外をキャッチします。

ObjectDoesNotExist および DoesNotExist の詳細については、 get()を参照してください。


EmptyResultSet

exception EmptyResultSet
EmptyResultSetは、クエリが結果を返さない場合、クエリの生成中に発生する可能性があります。 ほとんどのDjangoプロジェクトではこの例外は発生しませんが、カスタムルックアップと式を実装するのに役立つ場合があります。


FieldDoesNotExist

exception FieldDoesNotExist
FieldDoesNotExist例外は、要求されたフィールドがモデルまたはモデルの親に存在しない場合に、モデルの_meta.get_field()メソッドによって発生します。


MultipleObjectsReturned

exception MultipleObjectsReturned

MultipleObjectsReturned 例外は、1つのオブジェクトのみが予期されているが、複数のオブジェクトが返される場合にクエリによって発生します。 この例外の基本バージョンは django.core.exceptions で提供されています。 各モデルクラスには、複数のオブジェクトを返した特定のオブジェクトタイプを識別するために使用できるサブクラス化されたバージョンが含まれています。

詳細については、 get()を参照してください。


SuspiciousOperation

exception SuspiciousOperation

SuspiciousOperation 例外は、セッションCookieの改ざんなど、セキュリティの観点から疑わしいと見なされる操作をユーザーが実行した場合に発生します。 SuspiciousOperationのサブクラスは次のとおりです。

  • DisallowedHost

  • DisallowedModelAdminLookup

  • DisallowedModelAdminToField

  • DisallowedRedirect

  • InvalidSessionKey

  • RequestDataTooBig

  • SuspiciousFileOperation

  • SuspiciousMultipartForm

  • SuspiciousSession

  • TooManyFieldsSent

SuspiciousOperation例外がWSGIハンドラーレベルに達すると、Errorレベルでログに記録され、 HttpResponseBadRequest になります。 詳細については、ロギングドキュメントを参照してください。


PermissionDenied

exception PermissionDenied
PermissionDenied 例外は、ユーザーが要求されたアクションを実行する権限を持っていない場合に発生します。


ViewDoesNotExist

exception ViewDoesNotExist
ViewDoesNotExist 例外は、要求されたビューが存在しない場合に django.urls によって発生します。


MiddlewareNotUsed

exception MiddlewareNotUsed
サーバー構成でミドルウェアが使用されていない場合、 MiddlewareNotUsed 例外が発生します。


ImproperlyConfigured

exception ImproperlyConfigured
ImpproperlyConfigured 例外は、Djangoが何らかの理由で不適切に構成されている場合、たとえばsettings.pyの値が正しくないか解析できない場合に発生します。


FieldError

exception FieldError
モデルフィールドに問題がある場合、 FieldError 例外が発生します。 これはいくつかの理由で発生する可能性があります。
  • モデル内のフィールドが、抽象基本クラスの同じ名前のフィールドと衝突します
  • 無限ループは順序付けによって発生します
  • フィルタパラメータからキーワードを解析できません
  • クエリパラメータのキーワードからフィールドを特定できません
  • 指定されたフィールドへの結合は許可されていません
  • フィールド名が無効です
  • クエリに無効なorder_by引数が含まれています


ValidationError

exception ValidationError
ValidationError 例外は、データがフォームまたはモデルフィールドの検証に失敗した場合に発生します。 検証の詳細については、フォームとフィールドの検証モデルフィールドの検証、およびバリデーターリファレンスを参照してください。

NON_FIELD_ERRORS

NON_FIELD_ERRORS

フォームまたはモデルの特定のフィールドに属さないValidationErrorは、NON_FIELD_ERRORSとして分類されます。 この定数は、フィールドをそれぞれのエラーリストにマップする辞書のキーとして使用されます。


URLリゾルバーの例外

URLリゾルバーの例外はdjango.urlsで定義されています。

Resolver404

exception Resolver404
Resolver404 例外は、resolve()に渡されたパスがビューにマップされていない場合、 resolve()によって発生します。 これは django.http.Http404 のサブクラスです。


NoReverseMatch

exception NoReverseMatch
NoReverseMatch 例外は、指定されたパラメーターに基づいてURLconf内の一致するURLを識別できない場合、 django.urls によって発生します。


データベースの例外

データベース例外は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__属性が元の(基になる)データベース例外とともに設定され、提供された追加情報へのアクセスを許可します。

exception models.ProtectedError

django.db.models.PROTECT を使用するときに参照されるオブジェクトが削除されないようにするために発生しました。 models.ProtectedError は、 IntegrityError のサブクラスです。


Http例外

Http例外はdjango.httpからインポートできます。

UnreadablePostError

exception UnreadablePostError
Un読み取り可能PostError は、ユーザーがアップロードをキャンセルすると発生します。


トランザクションの例外

トランザクション例外はdjango.db.transactionで定義されています。

TransactionManagementError

exception TransactionManagementError
TransactionManagementError は、データベーストランザクションに関連するすべての問題に対して発生します。


フレームワークの例外のテスト

django.testパッケージによって提供される例外。

RedirectCycleError

exception client.RedirectCycleError
RedirectCycleError は、テストクライアントがループまたはリダイレクトの長すぎるチェーンを検出したときに発生します。


Pythonの例外

Djangoは、必要に応じて組み込みのPython例外も発生させます。 bltin-exceptions の詳細については、Pythonのドキュメントを参照してください。