我面临以下我在其他应用程序中没有遇到的问题。
我的 Sprint 数据模型:
import mongoengine as me
class Sprint(me.Document):
start_date = me.DateTimeField(),
end_date = me.DateTimeField(),
sequence = me.IntField(required=True, default=0)
在外壳中,我尝试了以下操作:
sprint = Sprint.objects.get(sequence=1)
sprint
<Sprint: Sprint object>
sprint.start_date - datetime.utcnow()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'tuple' and 'datetime.datetime'
然后我打印了 sprint.start_date 它返回了一个元组而不是 datetime 对象,如下所示:
sprint.start_date
(<mongoengine.fields.DateTimeField object at 0x22b7dd0>,)
所以我做了
sprint.start_date[0] - datetime.utcnow()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'DateTimeField' and 'datetime.datetime'
我之前的任何项目都没有遇到这个问题。我当前的 mongoengine 版本是 0.6.20。我没有为我当前的项目升级它,并且一直在我的所有项目中使用它。我正在使用 tornado 作为网络服务器
如何将 mongoengine 日期时间字段转换为与 python 日期时间实例兼容。
在此先感谢您的帮助。