我有一个模型。
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
created_time = db.Column(db.TIMESTAMP, nullable=False)
但是,每次我更新 name
或 password
,时间戳 created_time
会被更新,但我不希望。created_time
要更新。
# the way I update a user's info
class UserController(Resource):
def get(self):
user = User.query.filter_by(id=1).first() # a user had been created before
user.name = "new_name"
db.session.commit()
# as of here, not only `name` but also `created_time` will be update
如何停止 created_time
从更新行时自动更新?
更准确的说,我想知道的机制是 db.TIMESTAMP
更具体地说,是为了解决当我更新一行中的其他列时 db.TIMESTAMP
列也会被更新。
我希望在 db.TIMESTAMP
列的值在创建行的时候就已经固定了,无论其他列的值如何变化,这个值都不应该改变。
P.S.为了避免误解,我知道的是 TIMESTAMP
可能不是最合适的类型 created_time
列,但上面的代码只是为了说明问题。
你的列是你的 created_time
应是 db.DateTime
.