python - 烧瓶 SQLAlchemy updated_on
问题描述
我想创建Datetime
将在更新行时更新当前日期时间的字段。我试过这个:
updated_on = Column(DateTime, onupdate=db.func.now())
和这个:
updated_on = Column(DateTime, server_onupdate=db.func.now())
但是只有当我添加一个新行并且更新该行后没有更改时,一个字段才会更新。更新:
class UserLog(db.Model):
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('user.id'))
state = Column(String(25))
created_on = Column(DateTime, server_default=db.func.now())
updated_on = Column(DateTime, onupdate=datetime.utcnow)
解决方案
首先,server_onupdate
在服务器端不做任何事情,它只是为了让 SQLAlchemy 知道服务器“应该”在更新时生成一个值。这真的很误导人。您必须手动配置数据库以在更新时生成值。SQLAlchemy 不会为你做这件事。
所以使用onupdate
. onupdate=datetime.utcnow
. 不要忘记导入datetime
.
推荐阅读
- javascript - 使用数字海洋托管的 node.js/express 应用程序显示无法获取/错误
- android - onBindViewHolder 中的 LayoutParams 未正确设置重力
- prolog - 未定义的过程:(=)/4
- java - 在文本文件中解析的最简洁方式
- ios - WKWebView 中的 Google disallowed_useragent
- java - mimemessage 类中存在的 Setcontent 方法无法呈现我的 .VM 文件的 html 内容
- java - 如何强制 Jackson XmlMapper 以大写形式写入所有元素名称?
- python - 叶地图没有属性geo_json
- c++ - 什么时候调用析构函数?
- c++ - 使用用户定义的函数进行字符串反转