如何在django-rest-framework的序列化器中格式化时间?

nat*_*ila 9 django serialization django-rest-framework

有我的序列化代码:
serializer.py

class StartListSerializer(serializers.Serializer):
    id = serializer.CharField()
    time = serializers.DateField(fromat=None, input_formats=None) 
Run Code Online (Sandbox Code Playgroud)

它会给我这样的:
'time': '2014-03-14T22:44:16.923000'
输入时间格式是datetime.datetime(2014, 3, 14, 22, 44, 37, 280000)
但我想得到这样的时间2014-03-14 22:44:37
如何更改我的序列化器来获得这个时间?

xyr*_*res 15

通常的Python日期时间格式将起作用:

time = serializers.DateField(format="%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)


Fli*_*pym 9

测试接受的答案后,我收到以下错误:

断言错误:预期为date,但得到了datetime. 拒绝强制,因为这可能意味着丢失时区信息。使用自定义只读字段并明确处理时区问题。

使用序列化器字段datetime解决了这个问题。

class StartListSerializer(serializers.Serializer):

    # ...
    time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)