用peewee反向外键查询

时间:2017-03-18 23:10:50

标签: python peewee

我正在使用peewee orm,我想知道如何进行反向外键查询。

这些是我的模特:

class Device(BaseModel):
    mac = CharField()
    ip = CharField()

class Metrics(BaseModel):
    device = ForeignKeyField(Device, related_name="metricas")
    sensor = CharField()
    analog = FloatField(null = True)
    timestamp = DateTimeField()

我想知道最简单的方法,让所有具有公制传感器的公制设备="温度"。

我可以通过各种查询和一些迭代来解决它,但我想知道是否有更直接的方法来实现它。

由于

1 个答案:

答案 0 :(得分:1)

一种方式:

Device.select().join(Metric).where(Metric.sensor == 'temperature')

另一种方式:

Device.select().where(fn.EXISTS(
    Metric.select().where((Metric.sensor == 'temperature') & (Metric.device == Device.id))
))