【问题标题】:Mongoengine datetime "bug" -- saving server started time instead of current timestampMongoengine datetime "bug" -- 保存服务器启动时间而不是当前时间戳
【发布时间】:2016-01-06 15:28:41
【问题描述】:

我正在这样设置我的模型:

class user(db.Document):
    created_at = db.DateTimeField(default=datetime.datetime.now())

我希望每当一个新的用户实例是.save() 时,它都会有当前的时间戳。但是当我在本地机器上进行测试时,所有时间戳似乎都是服务器开始运行时的时间戳。

还有其他人有这个问题吗?

谢谢!

【问题讨论】:

  • 看看数据库连接类的tz_aware 选项。默认值为 False,这意味着您在应用程序中获得了原始日期。设置为 True 以获取时区感知日期。

标签: python pymongo mongoengine flask-mongoengine


【解决方案1】:

你想传入方法而不是调用它,像这样:

db.DateTimeField(default=datetime.datetime.now)

您执行此操作的方式仅在应用启动时评估一次函数,因此该时间始终是 created_at 的值。

【讨论】:

  • 非常感谢!这拯救了我的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多