mongoengine日期时间字段和python日期时间

时间:2013-03-21 11:45:32

标签: python datetime tornado mongoengine

我正面临以下问题,我在其他应用程序中没有遇到过这个问题。

我的Sprint数据模型:

import mongoengine as me

class Sprint(me.Document):
    start_date = me.DateTimeField(),
    end_date = me.DateTimeField(),
    sequence = me.IntField(required=True, default=0)

在shell中我尝试了以下内容:

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。我没有为我当前的项目升级它,并且已经将它用于我的所有项目。  我使用龙卷风作为网络服务器

如何将mongoengine datetime字段转换为与python datetime实例兼容。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

错误发生在datamodel定义本身。一种类型导致所有这些。 :(

start_date和end_date最后有一个',',它会产生噪音。

取下后,它会滚动。 :)