3
私はcharフィールドから最初の5文字を取得しようとしていますが、クエリーセットの1つのフィールドだけを取得しようとしています。ビューでこれを行う効果的な方法はありますか?Djangoはクエリーセット内の単一のフィールドをスライスします
コード私がしようとしています:
var = Model.objects.values('field1', 'field2'[:5], 'field3')
私はcharフィールドから最初の5文字を取得しようとしていますが、クエリーセットの1つのフィールドだけを取得しようとしています。ビューでこれを行う効果的な方法はありますか?Djangoはクエリーセット内の単一のフィールドをスライスします
コード私がしようとしています:
var = Model.objects.values('field1', 'field2'[:5], 'field3')
をあなたはSubstr
機能使用field2
の最初の5つの文字でクエリセットに注釈を付けることができます。
from django.db.models.functions import Substr
queryset = Model.objects.all()
queryset = queryset.annotate(field2_5=Substr('field2', 1, 5))
をそして、その後、値を注釈付きフィールドfield2_5
を使用します。
values = queryset.values('field1', 'field2_5', 'field3')
これはうまくいきました。ありがとうございました。しかし、5) – Zorpho
ありがとうございました。修正されました。 – AKS