我试图弄清楚为什么日期在 flask-restplus 中不起作用。
MarshallingError: Unable to marshal field "lastUpdate" value "<built-in method now of type object at 0x10264d6e0>": Unsupported DateTime format
127.0.0.1 - - [16/Apr/2016 22:24:18] "POST /api/v1/course/record/ab HTTP/1.1" 500 -
这是用于编组的对象
course_record_model = ns.model('Model', {
'topic': fields.String,
'totalMinutes': fields.Integer,
'percentComplete': fields.Integer,
'lastUpdate': fields.DateTime,
})
注意fields.DateTime。那就是问题所在。
def __init__(self, courseid, memberid, **kwargs):
"""Create instance."""
db.Model.__init__(self, **kwargs)
self.courseID = courseid
self.memberID = memberid
self.lastUpdate = datetime.datetime.now
我尝试添加一些格式,但似乎没有帮助,这里是文档
class fields.DateTime(dt_format='rfc822', **kwargs) 以 UTC 格式返回格式化的日期时间字符串。支持的格式为 RFC 822 和 ISO 8601。
有关 RFC 822 格式的更多信息,请参阅 email.utils.formatdate()。
有关 ISO 8601 格式的更多信息,请参阅 datetime.datetime.isoformat()。
参数:dt_format (str) – 'rfc822' 或 'iso8601'
不确定从 API 调用传入时如何制作日期格式。