Django 查询格式化日期时间输出

itn*_*nti 4 python django postgresql datetime

我的 Django 安装使用 PostgreSQL 后端。

我正在 Django 视图中执行以下操作:

completedItems = Completed.objects.filter(user_id=1)
return HttpResponse(completedItems.values('item_id','item_name','event_datetime','item_id__item_name'))
Run Code Online (Sandbox Code Playgroud)

对于日期时间字段,返回:

'event_datetime': datetime.datetime(2014, 6, 4, 0, 49, 38, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 json.dumps 序列化返回,这种格式让我感到悲伤。重新格式化查询返回的日期时间以便我可以正确序列化它的最佳方法是什么?

我尝试使用:

datetime.strptime('event_datetime',"datetime.datetime(%Y, %m, %d, %H, %M, %S, tzinfo=<%Z>)")
Run Code Online (Sandbox Code Playgroud)

但它抱怨日期与格式字符串不匹配。

Dmy*_*nko 6

为了在某​​些查询集中使用“to_char”函数 PostgreSQL,可能通过 Func 进行注释,(来自 Django 1.8)

rows = some_queryset.annotate(str_date=Func(F('date'), Value('DD.MM.YYYY'), function='to_char'))
Run Code Online (Sandbox Code Playgroud)

那么行中的每个项目都有“str_date”作为字符串日期,格式为“DD.MM.YYYY”

  • 从 django.db.models 导入 Func、F、Value
  • F('date') 中的 'date' 是具有日期时间数据的模型字段