У меня возникла следующая проблема, с которой я не сталкивался в другом приложении.mongoengine datetime field и python datetime
Мой Sprint DataModel:
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. Я не обновил его для своего текущего проекта и использовал его для всех своих проектов. Я использую торнадо в качестве веб-сервера
Как преобразовать поле datetime mongoengine в совместимый с экземпляром datetime python.
Заранее за вашу помощь.
Что-то очень неправильно здесь: Спринт = Sprint. objects.get (sequence = 1) должен возвращать один объект, а не набор запросов. Снова получение атрибута должно возвращать значение, а не поле. Можете ли вы проверить свою версию и установку, если она также сломана в оболочке, тогда вы можете исключить проблему торнадо. – Ross
Hi Ross, Да, это моя ошибка в написании этого запроса. Я прошу прощения за это и отредактирую его. Отдых правильный, моя версия mongoengine - 0.6.20. Вчера я даже понизил его до 0,6.7, который отлично работает на моей системе сверстников, но все же я получаю такую же ошибку и все же не решен. :( – Somesh
Я бы использовал ipdb и трассировал ошибку, убедитесь, что у вас установлен правильный mongoengine и нет других версий вашей системы. Также, какую версию python вы используете? – Ross