Hed*_*ide 28 python mysql django django-orm
我试图按DAY分组产品,但date_created是一个日期时间字段.
Product.objects.values('date_created') \
.annotate(available=Count('available_quantity'))
Run Code Online (Sandbox Code Playgroud)
收益:
[
{'date_created': datetime.datetime(2012, 4, 14, 13, 3, 6), 'available': 1},
{'date_created': datetime.datetime(2012, 4, 14, 17, 12, 9), 'available': 1},
...
]
Run Code Online (Sandbox Code Playgroud)
我想要:
[
{'date_created': datetime.datetime(2012, 4, 14), 'available': 2}, ...
]
Run Code Online (Sandbox Code Playgroud)
编辑:数据库后端MYSQL
San*_*4ez 32
灵感来自这个问题,请尝试使用mysql
Product.objects.extra(select={'day': 'date( date_created )'}).values('day') \
.annotate(available=Count('date_created'))
Run Code Online (Sandbox Code Playgroud)
San4ez的回答中的类似方法,但将日期返回为 'YYYY-MM-DD' 而不是 'datetime.datetime(YYYY, MM, DD)':
Product.objects.extra(select={'day': "TO_CHAR(date_created, 'YYYY-MM-DD')"})
.values('day') \
.order_by('day') \
.annotate(available=Count('date_created'))
Run Code Online (Sandbox Code Playgroud)