Django - 在values()方法中更改datetime字段输出格式

时间:2014-12-09 18:06:50

标签: django

我想创建一个查询集的dict列表,其中实例中有一个日期时间字段。然后,我想序列化它并用JSON发送它。

我正在使用此代码:

from django.core.serializers.json import DjangoJSONEncoder

objectList = Layers.objects.filter(geom_type="Polygon")
values = objectList.values('id', 'name', 'geom_type', 'date_created')
data = list(values)  # becomes list of dictionaries
jsonData = json.dumps(data, cls=DjangoJSONEncoder)
return HttpResponse(jsonData, content_type="application/json")

这样做很好,但我想知道是否可以选择日期时间字段格式为yyyy-mm-dd-hh-mm-ss而不是2014-12-09T16:05:12.132Z

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用DATETIME_FORMAT设置? https://docs.djangoproject.com/en/dev/ref/settings/

DATETIME_FORMAT = "Y-m-d-h-i-s"

答案 1 :(得分:1)

这样的事情怎么样......

data = [[x.id, x.name, x.geom_type, x.date_created.strftime("%Y-%m-%d-%H-%M-%S")] 
        for x in objectList]

或者,如果您使用的是DATETIME_FORMAT设置,则可以执行

data = [[x.id, x.name, x.geom_type, '%s' % x.date_created] 
        for x in objectList]