データベースからデータを読み込む
次のメソッドを使用すると、データベースからデータをロードできます。
-
get(*args,**kwargs)->モデル
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool] -
first(*args, **kwargs) -> Model -
all(*args, **kwargs) -> List[Optional[Model]] -
iterate(*args, **kwargs) -> AsyncGenerator[Model] -
モデル
- Model. load()メソッド
-
クエリセットエージェント
-
QuerysetProxy.get(*args, **kwargs)方法 QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)方法QuerysetProxy.first(*args, **kwargs)方法QuerysetProxy.all(*args, **kwargs)方法
得る
get(*args,**kwargs)->モデル
kwargsの設定条件を満たす最初の行をデータベースから取得します。
条件が設定されていない場合、pk列でソートされたデータベースの最後の行が返されます。
条件を渡すことは、実際には以下で説明するfilter(*args,**kwargs)メソッドを呼び出すことです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!警告条件を満たすローがない場合、NoMatch例外が発生します。
1 | |
取得またはなし
get_or_none(*args, **kwargs) -> Model
上記のgetとまったく同じですが、条件に一致するデータベースレコードが見つからない場合は例外をスローする代わりにNoneを返します。
取得または作成
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
メソッドの作成と取得の組み合わせです。
条件を満たすローを取得しようとすると、NoMatch例外が発生した場合、指定されたkwargsと_defaaultを使用して新しいローが作成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
!!!は、データベース内の同等の行であるにもかかわらず、上記の例のアルバムとアルバム2は2つの異なるPythonオブジェクトであると警告しています。これらのいずれかを更新しても、データベースから新しいデータを明示的に読み込むまで、2番目のオブジェクトは更新されません。
新しいオブジェクトを作成する場合は、pk列の値を渡すか、pk列を自動増分に設定する必要があることに注意してください
最初の
first(*args, **kwargs) -> Model
プライマリキー列の昇順でソートされた最初のローをデータベースから取得します。
1 2 3 4 5 6 7 8 9 10 11 12 | |
全部
all(*args, **kwargs) -> List[Optional["Model"]]
設定されたフィルターオプションの場合、特定のモデルのデータベース内のすべてのローが返されます。
kwargsの渡しは、filter(*args,**kwargs). all()の呼び出しに相当するショートカットです。
条件を満たすローがない場合は、空のリストを返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
反復
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
特定のモデルのデータベース内のすべてのローの非同期反復可能なジェネレータを返します。
argsおよび/またはkwargsを渡すことは、filter(*args, **kwargs).iterate() を呼び出すことに等しいショートカットです。
条件を満たすローがない場合は、空の非同期ジェネレータを返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!iterate()を使用すると、2つの最適化を組み合わせても意味がないため、以前のprefetch_ated()呼び出しが無視されることを警告します。
1 | |
モデルメソッド
各モデルインスタンスには、それ自体を保存、更新、または読み込むための一連のメソッドがあります。
ロード
load()メソッドを呼び出すことで、ForeignKey関連のモデルを読み込むことができます。
load()は、他のプロセスによって変更された場合、データベースからモデルを更新するために使用できます。
!!!ヒントモデルメソッドのload()メソッドの詳細を読む
QuerysetProxyメソッド
関連するManyTomanyフィールドとReverseForeignKeyに直接アクセスする場合は、関連するモデルのリストを返します。
ただし、QuerySet APIのサブセットを公開しているため、親モデルから直接フィルタリング、作成、関連モデルの選択などを行うことができます。
得る
動作原理は上記のget関数と全く同じですが、関係の反対側から関連オブジェクトを取得することができます。
!!!ヒントQuerysetProxyの詳細については、querysetproxyセクションにアクセスしてください
取得またはなし
上記のgetとまったく同じですが、条件に一致するデータベースレコードが見つからない場合は例外をスローする代わりにNoneを返します。
!!!ヒントQuerysetProxyの詳細については、querysetproxyセクションにアクセスしてください
取得または作成
上記のget_or_create関数とまったく同じですが、リレーションシップの反対側から関連するオブジェクトをクエリしたり、作成したりすることができます。
!!!ヒントQuerysetProxyの詳細については、querysetproxyセクションにアクセスしてください
最初の
上記の最初の関数とまったく同じですが、関係の反対側から関連するオブジェクトをクエリできるようにします。
!!!ヒントQuerysetProxyの詳細については、querysetproxyセクションにアクセスしてください
全部
上記のすべての機能とまったく同じですが、関係の反対側から関連するオブジェクトをクエリできます。
!!!ヒントQuerysetProxyの詳細については、querysetproxyセクションにアクセスしてください