Django 切片查询集中的单个字段
Django slice a single field in a queryset
我试图从 char 字段中获取前五个字符,但只针对查询集中的一个字段,但我不断收到各种错误。在视图中有没有有效的方法来做到这一点?
我正在尝试的代码:
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')
我试图从 char 字段中获取前五个字符,但只针对查询集中的一个字段,但我不断收到各种错误。在视图中有没有有效的方法来做到这一点?
我正在尝试的代码:
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')