querysetとは

Queryset型

querysetとは、Djangoで定義されているQueryset型のオブジェクトのこと。 モデル(データベース)から抽出された一連のデータが、querysetに保持される。 実際には、以下のような形式のリスト型。

queryset = Category.objects.all()
print(queryset)

上記を実行すると、指定したテーブル(Category)に格納されているレコードがリスト形式で表示される。

<QuerySet [<Category: name1>, <Category: name2>, ...]>

querysetの例

例えば、以下のようなquerysetが考えられる。

  • ブログ用の記事が保存されている”Article”テーブルのデータを全て取り出したもの

  • Articleテーブルから「日記」カテゴリ属性をもつデータのみを抽出したもの

  • Articleテーブルから最新の記事10件のみを抽出したもの

例えば、以下のようにCategoryを定義しているモデルがあったとする。

#app/models.py
class Category(models.Model):
	name = models.CharField('カテゴリ', max_length=20, unique=True)
	slug = models.SlugField(unique=True)
	timestamp = models.DateTimeField(auto_now_add=True)

このCategoryモデルに保存されているデータを取り出すためには、以下のような処理を記述する。

class View(ListView):
    queryset = Category.objects.all()
    context_object_name = 'categoryquery'

このquerysetは、model = Categoryと同じ結果を返す。(データはobject_listに)

最終更新

役に立ちましたか?