【发布时间】:2020-09-08 08:18:39
【问题描述】:
我有一个模型:
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自动更新?
编辑 1
更确切地说,我想了解db.TIMESTAMP的机制,更具体地说,解决我在一行中更新其他列时db.TIMESTAMP列也更新的问题。
我希望db.TIMESTAMP 列中的值在创建行时固定,并且无论其他列中的值如何变化,该值都不应更改。
附:为避免误解,我知道TIMESTAMP 可能不是最适合created_time 列的类型,但以上代码仅用于说明目的。
【问题讨论】:
标签: mysql python-3.x flask-sqlalchemy flask-restful