我想弄清楚为什么日期不适用于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 =&#39; rfc822&#39;,** kwargs) 以UTC格式返回格式化的日期时间字符串。支持的格式是RFC 822和ISO 8601。
有关RFC 822格式的更多信息,请参阅email.utils.formatdate()。
有关ISO 8601的更多信息,请参阅datetime.datetime.isoformat() 格式。
参数:dt_format(str) - &#39; rfc822&#39;或者&#39; iso8601&#39;
不确定如何从API调用进入日期格式。
答案 0 :(得分:2)
如您所见,您有"<built-in method now of type object at 0x10264d6e0>"
而不是datetime
对象。
我怀疑代码中的某个地方忘了输入括号()
,如下所示:
someobject.lastUpdate = datetime.now
但它应该是
someobject.lastUpdate = datetime.now()