繁体   English   中英

如何在peewee中计算字段?

[英]How to do calculated fields in peewee?

如何在模型定义中创建计算字段? 是否可以在生成的sql查询中执行计算? 以下fruit_difference将成为我想要实现的peewee模型中的成员。

SELECT
    apple_count,
    orange_count,
    (apple_count - orange_count) fruit_difference
FROM fruit_vendors

我认为你需要的是一个财产。 如果您使用Python内置属性,它将在Python中进行评估。 如果你想在数据库级别上做,我猜你应该使用Hybrid Property

这是文档中的一个很好的例子:

class Interval(Model):
    start = IntegerField()
    end = IntegerField()

    @hybrid_property
    def length(self):
        return self.end - self.start

    @hybrid_property
    def radius(self):
        return abs(self.length) / 2

    @radius.expression
    def radius(cls):
        return fn.ABS(cls.length) / 2

什么是整齐的是,半径实现都引用了长度混合属性! 通过Interval实例访问时,半径计算将在Python中执行。 通过Interval类调用时,我们将获得适当的SQL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM