在定义模型时,是否可以在插入该表时触发列的值?

时间:2017-10-17 01:30:26

标签: python sqlalchemy

采用以下模型:

class Thing(db.Model):
    id = db.Column(INTEGER, primary_key=True)
    data = db.Column(VARCHAR(255))

我想调用一个方法来强制Thing.data中的所有字符都是小写的(想想:str.lower),并且实现与以下类似的方法更可取:

class Thing(db.Model):
    id = db.Column(INTEGER, primary_key=True)
    data = db.Column(VARCHAR(255), on_insertion=lambda s: s.lower())

我相信一个可行的选择将是以下,但我希望有一些更惯用的东西:

class Thing(db.Model):
    id = db.Column(INTEGER, primary_key=True)
    data = db.Column(VARCHAR(255))

    def __init__(self, id, data):
        self.id = id
        self.data = data.lower()

0 个答案:

没有答案