查询中的Flask-SQLAlchemy变换字段

时间:2017-06-12 07:15:39

标签: python flask sqlalchemy flask-sqlalchemy

例如我有简单的模型:

class A(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    value = db.Column(db.Float)
    # some other fields...

我有时需要(在唯一的查询中)获取值字段乘以-1的对象。在其他查询中,我需要获取具有正常值字段的对象。我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议使用@property方法,您可以使用模型的原始属性分配逻辑操作:

class A(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    value = db.Column(db.Float)
    # some other fields...

    @property
    def inverted_value(self):
        return self.value * -1

现在,对于A的任何实例,您都可以访问该属性inverted_value

例如:

a = A(value=1)
a.value # 1
a.inverted_value # -1

现在,只要您需要反转值,只需访问新创建的属性而不是原始属性。