String &引用';str';对象没有属性';strftime'&引用;在ComplexDateTime字段转换中
嗯,我正在服务中实现一个测试用例,但是我面临一些问题 下面是一个代码示例String &引用';str';对象没有属性';strftime'&引用;在ComplexDateTime字段转换中,string,mongodb,mongoengine,strftime,String,Mongodb,Mongoengine,Strftime,嗯,我正在服务中实现一个测试用例,但是我面临一些问题 下面是一个代码示例 datetime_one = mongo.ComplexDateTimeField()._convert_from_string('2019, 12, 20, 19, 24, 10, 451923') visitor = Visit() visitor.user_id = '750645c7-bf66-4023-9a2d-9c942a25f6cd' visitor.timestamp = mongo.ComplexDat
datetime_one = mongo.ComplexDateTimeField()._convert_from_string('2019, 12, 20, 19, 24, 10, 451923')
visitor = Visit()
visitor.user_id = '750645c7-bf66-4023-9a2d-9c942a25f6cd'
visitor.timestamp = mongo.ComplexDateTimeField().to_mongo(datetime_one)
visitor.save()
visitor是类访问中的对象:
from datetime import datetime
import mongoengine as mongo
class Visit(mongo.Document):
user_id = mongo.UUIDField(required=True)
timestamp = mongo.ComplexDateTimeField(required=True, default=datetime.utcnow, editable=False)
当我试着运行这段代码时,在visitor.timestamp的行中出现了错误
AttributeError:“str”对象没有属性“strftime”
我做错了什么?您需要使用
datetime
实例,而不是字符串,并且不需要使用到mongo
或从字符串转换过来
如的文档中所述,与常规datetime字段的唯一区别在于,日期将作为字符串存储在场景后面,但您与该属性的任何交互都将使用日期时间
见下文:
class Visit(Document):
timestamp = ComplexDateTimeField()
visit = Visit(timestamp=datetime.utcnow())
visit.save()
assert isinstance(visit.timestamp, datetime)
# print object as it is stored in mongodb
print(Visit.objects.as_pymongo())
# Output: [{'timestamp': '2020,01,23,22,24,21,449017', '_id': ObjectId('5e2a1d15f3ede875e9c0b806')}]
如果您想要更多的代码示例,请随意查看相应的代码。这看起来像Python,但您应该添加相应的标记。此外,请提取并提供一份。它也可能与数据库中的内容相关,所以也可以添加一个片段来填充测试集合。哦,我现在明白了。我想我应该改变它。谢谢你的解释!