diadia

興味があることをやってみる。自分のメモを残しておきます。

データベースとクエリセット間の操作手続き

関連記事

データベースとクエリセット間の操作手続き

データベース、クエリセット、データオブジェクトの3要素が登場する。
そしてデータベースとクエリセット間の操作手続きとクエリセットとデータオブジェクト間の操作手続きが存在する。
データベースから望んだ条件でフィルターをかけた結果がクエリセット。
クエリセットはデータオブジェクト(レコード、row)の集まりともいえる。

データベースとクエリセット間の操作手続きを焦点にメモしてみる。
ドキュメントでは以下になる。
QuerySet API reference | Django documentation | Django


noneについて

効果と用途

none() は、何のオブジェクトも返さないクエリセットを生成し、結果にアクセスしたときに何のクエリも実行されなくなります。qs.none() クエリセットは EmptyQuerySet のインスタンスです。

>>> Entry.objects.none()
<QuerySet []>
>>> from django.db.models.query import EmptyQuerySet
>>> isinstance(Entry.objects.none(), EmptyQuerySet)
True

webアプリケーションから検索をかけた結果、一致するものがなかったときにnoneを使うと良い