我正面临以下问题,我在其他应用程序中没有遇到过这个问题。
我的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实例兼容。
提前感谢您的帮助。
答案 0 :(得分:0)
错误发生在datamodel定义本身。一种类型导致所有这些。 :(
start_date和end_date最后有一个',',它会产生噪音。
取下后,它会滚动。 :)