rde*_*ges 30 database postgresql sqlalchemy flask flask-sqlalchemy
我有一个简单的用户模型,定义如下:
# models.py
from datetime import datetime
from myapp import db
class User(db.Model):
id = db.Column(db.Integer(), primary_key=True)
email = db.Column(db.String(100), unique=True)
password = db.Column(db.String(100))
date_updated = db.Column(db.DateTime())
def __init__(self, email, password, date_updated=None):
self.email = email
self.password = password
self.date_updated = datetime.utcnow()
Run Code Online (Sandbox Code Playgroud)
当我创建一个新的User对象时,我的date_updated字段被设置为当前时间.我想做的是这样做,每当我保存对User对象的更改时,我的date_updated字段将自动设置为当前时间.
我已经搜索了文档,但对于我的生活,我似乎无法找到任何参考.我对SQLAlchemy很新,所以我真的没有任何经验可以借鉴.
会喜欢一些反馈,谢谢.
pla*_*aes 65
只需添加server_default或default参数列字段:
created_on = db.Column(db.DateTime, server_default=db.func.now())
updated_on = db.Column(db.DateTime, server_default=db.func.now(), server_onupdate=db.func.now())
Run Code Online (Sandbox Code Playgroud)
我更喜欢{created,updated}_on列名.;)
SQLAlchemy有关列插入/更新默认值的文档.
[编辑]:更新代码以server_default在代码中使用参数.
[编辑2]:替换onupdate为server_onupdate参数.
date_created = db.Column(db.DateTime, default=db.func.current_timestamp())
date_modified = db.Column(db.DateTime, default=db.func.current_timestamp(),
onupdate=db.func.current_timestamp())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14333 次 |
| 最近记录: |