CharFieldやTextFieldの長さに応じてクエリセットを取得する方法です。
「100文字以上入力されているもの」や「5文字以下で入力されているもの」を取得できます。
description
という文字列フィールドがあると仮定します。
views.py
from django.db.models.functions import Length
qs = queryset.annotate(
description_length=Length("description")
).filter(
description_length__gte=100
)
Lengthクラスをimportして文字数を判定したいフィールドの名前(description)を渡します。
annotate
メソッドにより、 description_length
という文字列の長さが入るフィールドができるイメージです。
description_length__gte=100
の部分で100文字以上に限定しています。