Flask Sqlalchemy如何在更新一行时不自动更新TIMSTAMP列。

问题描述 投票:0回答:1

我有一个模型。

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)

但是,每次我更新 namepassword,时间戳 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 列的值在创建行的时候就已经固定了,无论其他列的值如何变化,这个值都不应该改变。

P.S.为了避免误解,我知道的是 TIMESTAMP 可能不是最合适的类型 created_time 列,但上面的代码只是为了说明问题。

python mysql python-3.x flask-sqlalchemy flask-restful
1个回答
0
投票

你的列是你的 created_time 应是 db.DateTime.

© www.soinside.com 2019 - 2024. All rights reserved.