モデル プロパティで Django のクエリ フィルタリングを強化できますか?
Django のオブジェクト指向プログラミングの重要な機能の 1 つは、次のことを定義できることです。モデルのプロパティ。プロパティを使用すると、追加のメソッドを記述せずにモデルに機能を追加できます。これらは、モデルに格納されているデータに基づいて計算された値を返すことによって機能します。
プロパティの一般的な使用例は、既存のフィールドの組み合わせから派生するカスタム属性を作成することです。たとえば、タイトル、著者、ページなどのフィールドを持つ本を表すモデルがあると想像してください。 book_length() プロパティを定義して、ページ数を数えることによって計算される本の長さを返すことができます。
プロパティはモデルの機能を拡張するための強力なツールですが、使用することはできません。 Django クエリセットをフィルタリングします。これは、Django のフィルターがデータベース レベルで動作し、SQL を生成するためです。 Python プロパティに基づいてフィルタリングするには、特定のオブジェクト インスタンスを取得し、それを Python にロードしてプロパティを評価し、基準を満たしているかどうかを判断する必要があります。ただし、その時点では、すでに特定のオブジェクトを取得し、メモリにロードしています。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3