COBAKURA.COM

Django 文字列の長さでクエリセットをフィルタする

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文字以上に限定しています。

おすすめ記事

2023/8/10

Djangoでエポック秒(unix秒)をテンプレートで表示

2023/7/5

Django OneToOneFieldが存在するかをチェックする方法