Django queryset TruncMonth输出格式问题

问题描述 投票:0回答:1

我正在将Django ORM查询集用于图表,并且难以更改输出格式

'source': ActivityLog.objects.filter(requestType='add',doDate__lte=datetime.datetime.today(), doDate__gt=datetime.datetime.today()-datetime.timedelta(days=365)).\
                   values(작업월=TruncMonth('doDate')).annotate(요청건수=Count('requestType'), IP개수=Sum('ipCnt'))},

当我使用'TruncMonth'时,输出是这样的-> 2019-10-01T00:00:00

但是我只想使用2019-10(YYYY-MM)...

我有什么好的解决方案吗?

提前感谢。

django django-queryset django-orm
1个回答
0
投票

TruncMonth表达式的输出设为CharField

然后提取前7个字符作为表达式以注释查询集。

from django.db.models import CharField
from django.db.models.functions import Substr
#...
values(작업월=Substr(TruncMonth('doDate', output_field=CharField()), 1, 7))
© www.soinside.com 2019 - 2024. All rights reserved.