我面臨以下問題,我沒有遇到過我的其他應用程序。mongoengine datetime字段和python日期時間
我的衝刺數據模型:
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。我沒有爲我目前的項目提供註冊,並且一直在爲我的所有項目使用它。 我正在使用龍捲風作爲web服務器
如何將mongoengine datetime字段轉換爲兼容python datetime實例。
在此先感謝您的幫助。
東西是非常錯誤的位置: 衝刺=衝刺。 objects.get(sequence = 1)應該返回單個對象而不是查詢集。再次獲取屬性應該返回值而不是字段。你可以檢查你的版本和安裝,如果它也破壞了外殼,那麼你可以排除龍捲風是一個問題。 – Ross 2013-03-21 12:14:26
Hi Ross, 是的,這是我寫它作爲查詢集的錯。我對此表示歉意,並會對其進行編輯。休息是正確的我的mongoengine版本是0.6.20。昨天,我甚至將它降級到0.6.7,這對我的同伴系統來說工作正常,但我仍然得到相同的錯誤,但仍然沒有解決。 :( – Somesh 2013-03-22 04:21:22
我會用ipdb並跟蹤錯誤,確保你已經安裝了正確的mongoengine,並且沒有其他版本在你的系統上。你還可以使用什麼版本的python? – Ross 2013-03-22 11:01:46