Я столкнулся со следующей проблемой, с которой я не сталкивался в другом приложении.
Моя модель данных 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. Я не обновлял его для своего текущего проекта и использовал его для всех своих проектов. Я использую торнадо в качестве веб-сервера
Как преобразовать поле даты и времени mongoengine в совместимое с экземпляром даты и времени python.
Заранее спасибо за помощь.