「Djangoパーフェクトマスター」モデルのgetメソッドを用いて1つのインスタンスを取得する【Udemyで学習】
このレクチャーでは「モデルのgetメソッドを用いて1つのインスタンスを取得する」を説明します。
前のレクチャーで説明した、フィルタによるQuerySetの取得では、たとえ、絞り込んだ結果が一行であったとしても、QuerySetが返却されます。その場合は、一つの要素だけが含まれたQuerySetです。
検索でマッチするのが、一つのインスタンスだけと、最初からわかっている場合には、マネージャーのgetメソッドを使用します。
スライドの、対話型シェル実行例をご覧ください。getメソッドに、pk=1という引数を与えています。実はこのpk=1は、前のレクチャーで説明した「フィールドルックアップ」を短くしたショートカットです。主キーが1という意味となります。このgetメソッドの実行によって、QuerySetではなく、単独のモデルインスタンスを、取得することができます。今回はpk=1を引数に指定しましたが、getメソッドの引数には、いろいろな検索条件の、フィールドルックアップを指定することができます。
指定した検索条件で、1件もマッチしなかった場合、getメソッドは「DoesNotExist例外」を発生します。また、getメソッドを使用したにも関わらず、2件以上のアイテムにマッチした場合は「MultipleObjectsReturned例外」を発生します。二つの例外とも、Entryモデルクラスの例外です。
以上で「モデルのgetメソッドを用いて1つのインスタンスを取得する」の説明を終わります。
★★★ 続きはUdemyで ★★★
https://www.udemy.com/course/django_master/?referralCode=3B5D0AF66B09A7B8DD25
★★★ コース内でお逢いできることを楽しみにしています。 ★★★