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に)
最終更新
役に立ちましたか?