Django の例外Link to this heading

Django は普通の Python の例外の他に、いくつか独自の例外も起こします。

Django Core 例外Link to this heading

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

AppRegistryNotReadyLink to this heading

exception AppRegistryNotReadyLink to this definition

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

ObjectDoesNotExistLink to this heading

exception ObjectDoesNotExistLink to this definition

Model.DoesNotExist 例外の基底クラスです。ObjectDoesNotExist のための try/except は、すべてのモデルの DoesNotExist 例外をキャッチします。

get() を参照してください。

ObjectNotUpdatedLink to this heading

exception ObjectNotUpdatedLink to this definition

The base class for Model.NotUpdated exceptions. A try/except for ObjectNotUpdated will catch NotUpdated exceptions for all models.

save() を参照してください。

EmptyResultSetLink to this heading

exception EmptyResultSetLink to this definition

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

FullResultSetLink to this heading

exception FullResultSetLink to this definition

FullResultSet は、クエリが全てに一致する場合に、クエリ生成中に発生する可能性があります。ほとんどの Django プロジェクトではこの例外に遭遇することはありませんが、カスタムルックアップや式を実装する際に役立つかもしれません。

FieldDoesNotExistLink to this heading

exception FieldDoesNotExistLink to this definition

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

MultipleObjectsReturnedLink to this heading

exception MultipleObjectsReturnedLink to this definition

Model.MultipleObjectsReturned 例外の基底クラスです。MultipleObjectsReturnedtry/except は、すべてのモデルの MultipleObjectsReturned 例外をキャッチします。

get() を参照してください。

SuspiciousOperationLink to this heading

exception SuspiciousOperationLink to this definition

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

  • DisallowedHost

  • DisallowedModelAdminLookup

  • DisallowedModelAdminToField

  • DisallowedRedirect

  • InvalidSessionKey

  • RequestDataTooBig

  • SuspiciousFileOperation

  • SuspiciousMultipartForm

  • SuspiciousSession

  • TooManyFieldsSent

  • TooManyFilesSent

もし SuspiciousOperation 例外が ASGI/WSGI ハンドラレベルに達した場合、Error レベルでログ記録され、 HttpResponseBadRequest が結果として返されます。 詳細については、ロギングのドキュメント を参照してください。

PermissionDeniedLink to this heading

exception PermissionDeniedLink to this definition

PermissionDenied 例外は、ユーザーにリクエストされたアクションを実行する権限がない場合に発生します。

ViewDoesNotExistLink to this heading

exception ViewDoesNotExistLink to this definition

ViewDoesNotExist 例外は、リクエストされたビューが存在しないい場合に、django.urls によって発生します。

MiddlewareNotUsedLink to this heading

exception MiddlewareNotUsedLink to this definition

MiddlewareNotUsed 例外は、サーバーの設定の中でミドルウェアが使用されなかった時に発生します。

ImproperlyConfiguredLink to this heading

exception ImproperlyConfiguredLink to this definition

ImproperlyConfigured 例外は、Django が何らかの点で不適切に設定されている場合に発生します。たとえば、settings.py に含まれる値が不正であったり、パースできないような場合が考えられます。

FieldErrorLink to this heading

exception FieldErrorLink to this definition

FieldError 例外は、モデルのフィールドに問題がある時に発生します。発生理由としては、次のようないくつかの理由が考えられます。

  • モデル内のフィールドが、抽象基底クラスからの同名のフィールドと衝突しています

  • ソートによって無限ループが起こります

  • フィルタパラメータからキーワードを解析できません

  • クエリパラメータのキーワードからは、フィールドを特定できません

  • 指定されたフィールドに対する結合は許可されていません

  • フィールド名が無効です

  • クエリに無効な order_by 引数が含まれています

FieldFetchBlockedLink to this heading

exception FieldFetchBlockedLink to this definition

Raised when a field would be fetched on-demand and the FETCH_RAISE fetch mode is active.

ValidationErrorLink to this heading

exception ValidationErrorLink to this definition

ValidationError 例外は、データがフォームまたはモデルのフィールド検証に失敗すると発生します。検証 (validation) のより詳しい情報については、フォームとフィールドのバリデーションモデルフィールドのバリデーションバリデータのリファレンス を参照してください。

NON_FIELD_ERRORSLink to this heading

NON_FIELD_ERRORSLink to this definition

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

BadRequestLink to this heading

exception BadRequestLink to this definition

BadRequest 例外は、クライアントエラーによりリクエストを処理できない場合に発生します。 BadRequest 例外が ASGI/WSGI ハンドラレベルに到達すると、 HttpResponseBadRequest が結果として返されます。

RequestAbortedLink to this heading

exception RequestAbortedLink to this definition

RequestAborted 例外は、ハンドラによって読み込まれた HTTP ボディが途中で切断され、クライアント接続が閉じられるか、またはクライアントがデータを送信せず、サーバーが接続を閉じるタイムアウトに達したときに発生します。

これはHTTPハンドラーモジュール内部のもので、他の場所で見ることはまずありません。HTTP処理コードを変更している場合、ソケットがクリーンに閉じられるように、中断されたリクエストに遭遇した際にはこれを発生させるべきです。

SynchronousOnlyOperationLink to this heading

exception SynchronousOnlyOperationLink to this definition

SynchronousOnlyOperation 例外は、同期的な Python コードでのみ許可されているコードが、実行中の非同期イベントループを持つスレッドから非同期コンテキストで呼び出されたときに発生します。Django のこれらの部分は、一般に機能するためにスレッドセーフに大きく依存しており、同じスレッドを共有するコルーチンの下では正しく動作しません。

非同期スレッドから同期専用のコードを呼び出そうとしている場合は、同期スレッドを作成し、その中で呼び出してください。これは、 asgiref.sync.sync_to_async() を使用して実現できます。

URL Resolver の例外Link to this heading

URL Resolver の例外は django.urls で定義されています。

Resolver404Link to this heading

exception Resolver404Link to this definition

The Resolver404 exception is raised by resolve() if the path passed to resolve() doesn't map to a view. It's a subclass of django.http.Http404.

NoReverseMatchLink to this heading

exception NoReverseMatchLink to this definition

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

データベースの例外Link to this heading

データベースの例外は django.db からインポートできます。

Django は標準のデータベース例外をラップしており、これによって Django コードにはこれらのクラスの共通の実装が保証されます。

exception ErrorLink to this definition
exception InterfaceErrorLink to this definition
exception DatabaseErrorLink to this definition
exception DataErrorLink to this definition
exception OperationalErrorLink to this definition
exception IntegrityErrorLink to this definition
exception InternalErrorLink to this definition
exception ProgrammingErrorLink to this definition
exception NotSupportedErrorLink to this definition

Djangoのデータベース例外のラッパーは、基になるデータベース例外と全く同じ動作をします。詳細については、 PEP 249 、Python Database API Specification v2.0 を参照してください。

A __cause__ attribute is set with the original (underlying) database exception, allowing access to any additional information provided.

exception models.ProtectedErrorLink to this definition

参照されているオブジェクトの削除を防ぐために発生させられる django.db.models.PROTECT を使用しています。 models.ProtectedErrorIntegrityError のサブクラスです。

exception models.RestrictedErrorLink to this definition

django.db.models.RESTRICT を使用して参照されているオブジェクトの削除を防ぐために発生します。 models.RestrictedErrorIntegrityError のサブクラスです。

HTTP 例外Link to this heading

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

UnreadablePostErrorLink to this heading

exception UnreadablePostErrorLink to this definition

UnreadablePostError は、ユーザーがアップロードをキャンセルすると発生します。

セッションの例外Link to this heading

セッションの例外は django.contrib.sessions.exceptions で定義されています。

SessionInterruptedLink to this heading

exception SessionInterruptedLink to this definition

SessionInterrupted は、並行リクエストでセッションが破棄された場合に発生します。これは BadRequest のサブクラスです。

トランザクションの例外Link to this heading

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

TransactionManagementErrorLink to this heading

exception TransactionManagementErrorLink to this definition

TransactionManagementError が発生するのは、データベースのトランザクションに関するあらゆる問題に対してです。

テストフレームワークの例外Link to this heading

django.test パッケージが提供する例外です。

RedirectCycleErrorLink to this heading

exception client.RedirectCycleErrorLink to this definition

RedirectCycleError は、テストクライアントがループまたは過度に長いリダイレクトの連結を検出した時に発生します。

Python の例外Link to this heading

Django は、十分適切な場合にはビルトインの Python の例外を起こします。詳しい情報については、Python のドキュメント Built-in Exceptions を読んでください。