2017-06-12 91 views
0

比如我有简单的模型:烧瓶SQLAlchemy的变换场查询

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

我需要有时(在只有一个查询),以获得与value字段乘以-1的对象。在其他查询中,我需要获得具有正常值字段的对象。我如何做到这一点?

谢谢!

+1

你的意思是说你想获取一个实体对象,它们的值属性设置为'value * -1'?这似乎很奇怪。你能否在你的问题中包含更多的背景知识? –

+0

是的,我有特殊情况,当我需要查看具有'value * -1'的实体对象时。在其他情况下,我不需要这个。 – user1817242

+1

你不能只在视图中包含该逻辑吗? –

回答

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 

现在,每当你需要的反转值,刚刚接触而不是原来的一个新创建的属性。