[英]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.