带有 __date returns 无的 django 查询集

django queryset with __date returns Nones

我有一个 Django 查询集,我想在其中按 created_at 日期值进行分组(created_at 是一个日期时间字段)。

(Activity.objects
    .values('created_at__date')
    .annotate(count=Count('id'))
    .values('created_at__date', 'count')
 )

我正在遵循已接受的答案 ,这是有道理的。但是,查询 returns None 用于所有 created_at__date 值。当我将其更改为 created_at 时,它会显示实际值。

生成的SQL查询:

SELECT 
   django_datetime_cast_date("activity"."created_at", 'UTC', 'UTC'), 
   COUNT("activity"."id") AS "count" 
FROM 
   "activity" 
GROUP BY 
   django_datetime_cast_date("activity"."created_at", 'UTC', 'UTC')

我正在使用本地 sqlite3 数据库,数据库中的一些示例记录(table 中的其他列已删除):

2,2021-07-30T11:44:09.984439+00:00
3,2021-07-30T11:44:29.217916+00:00
4,2021-07-30T11:44:43.598702+00:00
5,2021-08-03T20:53:48.482419+00:00
6,2021-08-04T22:19:52.810907+00:00
7,2021-08-05T17:25:29.646553+00:00
8,2021-08-05T17:25:33.425523+00:00
9,2021-08-05T17:26:22.169369+00:00
10,2021-08-05T17:50:26.585485+00:00
11,2021-08-10T16:20:38.839126+00:00
12,2021-08-10T17:38:00.557487+00:00
13,2021-08-11T16:09:30.470890+00:00
14,2021-08-11T16:09:34.164904+00:00
15,2021-08-12T15:43:18.819458+00:00
16,2021-08-12T16:19:30.123575+00:00
18,2021-08-15T12:55:20.660137+00:00
24,2021-08-18T18:21:12.153480+00:00
25,2021-08-18T19:18:37.432911+00:00

原因是sqlite3数据库不支持内置日期and/or时间,无法存储时区信息。由于样本日期包含时区信息,sqlite3无法从日期时间字段中提取日期,并显示 None.

sqlite3 的正确格式

2021-11-29 12:40:20.021350