【发布时间】:2017-04-27 13:56:47
【问题描述】:
我正在尝试从 char 字段中获取前五个字符,但只针对查询集中的一个字段,但我不断收到各种错误。在视图中是否有有效的方法来做到这一点?
我正在尝试的代码:
var = Model.objects.values('field1', 'field2'[:5], 'field3')
【问题讨论】:
标签: python django django-queryset slice
我正在尝试从 char 字段中获取前五个字符,但只针对查询集中的一个字段,但我不断收到各种错误。在视图中是否有有效的方法来做到这一点?
我正在尝试的代码:
var = Model.objects.values('field1', 'field2'[:5], 'field3')
【问题讨论】:
标签: python django django-queryset slice
您可以使用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')
【讨论】: