Python 如何在peewee中执行计算字段?

Python 如何在peewee中执行计算字段?,python,peewee,Python,Peewee,如何在模型定义中创建计算字段?是否可以在生成的sql查询中执行计算?下面的fruit\u difference将是我想要实现的peewee模型中的成员 SELECT apple_count, orange_count, (apple_count - orange_count) fruit_difference FROM fruit_vendors 我想你需要的是一笔财产。如果使用Python内置属性,则将在Python中对其求值。如果您想在数据库级别执行此操作,我想您应

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

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

我想你需要的是一笔财产。如果使用Python内置属性,则将在Python中对其求值。如果您想在数据库级别执行此操作,我想您应该使用

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

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
整洁的是,两个radius实现都引用了 长度混合属性!当通过Interval实例访问时 半径计算将在Python中执行。当通过 Interval类,我们将获得相应的SQL


正如我看到的,下面的答案是不够的,我的意思是,是的,这将在从实例访问时起作用,但每次访问都会向db发出新的请求,我还想知道我们如何编写类似于
(apple\u count-orange\u count)的内容果_差异为diff
,只需直接从主查询中使用返回的diff值即可。hybrid_属性从哪里从playhouse导入???@SkyWalker
。hybrid import hybrid_属性