SQLAlchemy定了一个model,如下:
1 2 3 4 5 6 7
| class PostContent(db.Model): __tablename__ = 'a_post_contents'
id = db.Column(db.Integer, primary_key=True) content = db.Column(db.BLOB) created_at = db.Column(db.DateTime, default=datetime.now()) updated_at = db.Column(db.DateTime, default=datetime.now(), onupdate=datetime.now())
|
运行后发现新插入的数据的created_at字段的值都是一样的。
原因
created_at的默认值datetime.now(),在编译的时候就会被执行输出当前时间,后面的实例都会使用这个时间。
解决
created_at的默认值应该是datetime.now,不能加括号。
代码修改如下:
1 2 3 4 5 6 7
| class PostContent(db.Model): __tablename__ = 'a_post_contents'
id = db.Column(db.Integer, primary_key=True) content = db.Column(db.BLOB) created_at = db.Column(db.DateTime, default=datetime.now) updated_at = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)
|
本文标题:SQLAlchemy的DateTime字段默认值为datetime.now时的问题
文章作者:biteyu
发布时间:2016-03-22
原始链接:https://www.biteyu.cn/a/669621.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!