... 、どんな問題がよく起こるのかは、知っておいた方がいいでしょう。 コマンド ¶ マイグレーションと Django のデータベーススキーマの操作に関わる時によく使うコマンドを、いくつか挙げておきましょう。 migrate は、マイグレーションを適用したり、適用をキャンセルするの ... で標準で利用できるすべてのバックエンドに対応しています。サードパーティ製のバックエンドでも、プログラムからのスキーマの変更の操作( SchemaEditor クラスで実行される)に対応していれば大丈夫です。 しかし、スキーマのマイグレーションは、データベースによってが ... PostgreSQLはスキーマのサポートという点で、ここにあるすべてのデータベースの中で最も有能です。 MySQL ¶ MySQL はスキーマの変更操作周りのトランザクションをサポートしていません。つまり、マイグレーションの適用が失敗した場合には、手動で変更点を調べあげ、やり ... ... 、どんな問題がよく起こるのかは、知っておいた方がいいでしょう。 コマンド ¶ マイグレーションと Django のデータベーススキーマの操作に関わる時によく使うコマンドを、いくつか挙げておきましょう。 migrate は、マイグレーションを適用したり、適用をキャンセルするの ... で標準で利用できるすべてのバックエンドに対応しています。サードパーティ製のバックエンドでも、プログラムからのスキーマの変更の操作( SchemaEditor クラスで実行される)に対応していれば大丈夫です。 しかし、スキーマのマイグレーションは、データベースによってが ... PostgreSQLはスキーマのサポートという点で、ここにあるすべてのデータベースの中で最も有能です。 MySQL ¶ MySQL はスキーマの変更操作周りのトランザクションをサポートしていません。つまり、マイグレーションの適用が失敗した場合には、手動で変更点を調べあげ、やり ... ... す。 逆順にすると、指定された locale 、 provider 、そして deterministic 引数を使用して照合順序を作成します。したがって、この操作を逆にするには locale が必要です。 インデックスの並列操作 ¶ PostgreSQLでは、 CREATE INDEX と DROP INDEX 文の CONCURRENTLY オ ... ャンする手間を省きたい場合に便利です。 NOT VALID オプションで作成されたチェック制約を後から検証するには、 ValidateConstraint 操作を使用してください。 詳細については、 PostgreSQL のドキュメント を参照してください。 class AddConstraintNotValid ( model_nam ... straint のオペレーションは、2 つの別々のマイグレーションで実行する必要があります。同じアトミック マイグレーション内で両方の操作を実行すると AddConstraint クラスと同じ効果があります。一方、非アトミック マイグレーション内で操作を行うと、 ValidateConstra ... ... を計算してその結果を保管するロジックの部分 ( django.db.migrations )と、「モデルを作成する」や「フィールドを削除する」といった操作を SQL に変換する、データベースの抽象レイヤーの部分です。後者の仕事を担当するのが、 SchemaEditor です。 Django を使っている普 ... 成など) のようなものを管理することを可能にするため、コンテキストマネージャを通して使用されなければなりません。 すべての可能な操作をメソッドとして公開し、変更を適用したい順序で呼び出すべきです。一部の操作や変更の種類は、すべてのデータベースで可能ではあり ... 場合、カラムを作成する代わりに、リレーションシップを表すためのテーブルを作成します。 through が提供されている場合、それは何も操作しません。 フィールドが ForeignKey である場合、これによって外部キー制約もカラムに追加されます。 remove_field() ¶ BaseDatabas ... ... す。 逆順にすると、指定された locale 、 provider 、そして deterministic 引数を使用して照合順序を作成します。したがって、この操作を逆にするには locale が必要です。 インデックスの並列操作 ¶ PostgreSQLでは、 CREATE INDEX と DROP INDEX 文の CONCURRENTLY オ ... ャンする手間を省きたい場合に便利です。 NOT VALID オプションで作成されたチェック制約を後から検証するには、 ValidateConstraint 操作を使用してください。 詳細については、 PostgreSQL のドキュメント を参照してください。 class AddConstraintNotValid ( model_nam ... straint のオペレーションは、2 つの別々のマイグレーションで実行する必要があります。同じアトミック マイグレーション内で両方の操作を実行すると AddConstraint クラスと同じ効果があります。一方、非アトミック マイグレーション内で操作を行うと、 ValidateConstra ... ... を計算してその結果を保管するロジックの部分 ( django.db.migrations )と、「モデルを作成する」や「フィールドを削除する」といった操作を SQL に変換する、データベースの抽象レイヤーの部分です。後者の仕事を担当するのが、 SchemaEditor です。 Django を使っている普 ... 成など) のようなものを管理することを可能にするため、コンテキストマネージャを通して使用されなければなりません。 すべての可能な操作をメソッドとして公開し、変更を適用したい順序で呼び出すべきです。一部の操作や変更の種類は、すべてのデータベースで可能ではあり ... 場合、カラムを作成する代わりに、リレーションシップを表すためのテーブルを作成します。 through が提供されている場合、それは何も操作しません。 フィールドが ForeignKey である場合、これによって外部キー制約もカラムに追加されます。 remove_field() ¶ BaseDatabas ... ... ルーターは、以下の 4 つのメソッドを提供するクラスです: db_for_read ( model , ** hints ) ¶ model 型のオブジェクトの読み取り操作に使用するデータベースをサジェストします。 データベース操作がデータベースを選択する際に役立つ追加情報を提供できる場合、それは ... db_for_write ( model , ** hints ) ¶ Model型のオブジェクトの書き込みに使用するデータベースをサジェストします。 データベース操作がデータベースを選択する際に役立つ追加情報を提供できる場合、それは hints 辞書で与えられます。有効なヒントの詳細は 下記 を参照 ... が許可されるべきであれば True を、禁止されるべきであれば False を、ルーターの意見がなければ None を返します。これは純粋に検証操作であり、外部キーや多対多の操作で、2つのオブジェクト間でリレーションが許可されるべきかどうかを判断するために使用されます。 ど ... ... ルーターは、以下の 4 つのメソッドを提供するクラスです: db_for_read ( model , ** hints ) ¶ model 型のオブジェクトの読み取り操作に使用するデータベースをサジェストします。 データベース操作がデータベースを選択する際に役立つ追加情報を提供できる場合、それは ... db_for_write ( model , ** hints ) ¶ Model型のオブジェクトの書き込みに使用するデータベースをサジェストします。 データベース操作がデータベースを選択する際に役立つ追加情報を提供できる場合、それは hints 辞書で与えられます。有効なヒントの詳細は 下記 を参照 ... が許可されるべきであれば True を、禁止されるべきであれば False を、ルーターの意見がなければ None を返します。これは純粋に検証操作であり、外部キーや多対多の操作で、2つのオブジェクト間でリレーションが許可されるべきかどうかを判断するために使用されます。 ど ... ... あるかもしれません。例えば、特定のデータベースに対してのみマイグレーションを実行したい場合です。 これを行うには、 RunPython 操作の中で、 schema_editor.connection.alias 属性を見て、データベース接続のエイリアスを確認します: from django.db import migratio ... ions ] operations = [ migrations . RunPython ( forwards , hints = { "target_db" : "default" }), ] もし RunPython や RunSQL 操作が 1 つのモデルにしか影響しないのであれば、 model_name をヒントとして渡すことで、ルーターに対して最大限、透過的になります。こ ... 加するフィールドのタイプに適切なデフォルトを選択してください)。 makemigrations コマンドを実行します。これにより、 AddField 操作を含むマイグレーションが生成されます。 同じアプリに対して makemigrations myapp --empty を2回実行して、2つの空のマイグレーショ ... ... 場合は model のデフォルトのマネージャーの all() を呼んで QuerySet を組み立てます。 get_context_object_name ( obj ) ¶ ビューが操作するデータを格納するために使われる、コンテキストの変数名を返します。 context_object_name がセットされていない場合、コンテキス ... lateResponseMixin ¶ class django.views.generic.detail. SingleObjectTemplateResponseMixin ¶ 単一のオブジェクトインスタンスを操作するビューをレンダリングする、テンプレートベースのレスポンスを実行する mixin クラスです。 混合されたビューは、操作するオブジ ... が設定されていれば、それを含むリストを返します。設定されていない場合は、以下を含むリストを返します。 (有効な場合) ビューが操作するオブジェクトインスタンス上の template_name_field の内容 <app_label>/<model_name><template_name_suffix>.html 目次 単一オブ ... 2026年10月08日