他のアプリケーションでは遭遇しなかった次の問題に直面しています。
私のスプリントデータモデル:
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 を印刷しました。
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 を Web サーバーとして使用しています
mongoengine の datetime フィールドを Python の datetime インスタンスと互換性のあるものに変換する方法。
よろしくお願いします。