0
如何在模型定义中计算字段?是否有可能在生成的SQL查询中执行计算?以下fruit_difference
将是我想要实现的peewee模型中的成员。如何在peewee中计算字段?
SELECT
apple_count,
orange_count,
(apple_count - orange_count) fruit_difference
FROM fruit_vendors
如何在模型定义中计算字段?是否有可能在生成的SQL查询中执行计算?以下fruit_difference
将是我想要实现的peewee模型中的成员。如何在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中执行。当通过间隔类调用 时,我们将获得适当的SQL。