У меня есть 3 модели.
from peewee import (
PostgresqlDatabase,
Model,
CharField,
ForeignKeyField,
prefetch,
JOIN_LEFT_OUTER
)
db = PostgresqlDatabase("***", user='***', password='***')
class Model1(Model):
name = CharField()
class Meta:
database = db
class Model2(Model):
name = CharField()
model1 = ForeignKeyField(Model1)
class Meta:
database = db
class Model3(Model):
name = CharField()
model1 = ForeignKeyField(Model1)
class Meta:
database = db
def main():
model1_prefetched = prefetch(Model1.select(Model1), Model3.select(Model3)).select()
query = Model2.select(Model2.name, model1_prefetched.c.model1, model1_prefetched.c.model3).join(model1_prefetched, join_type=JOIN_LEFT_OUTER, on=(Model2.model1_id==model1_prefetched.c.id))
model2_objects = list(query.execute())
if __name__ == '__main__':
main()
Я хочу выбрать все данные из Model2 , объединенные с Model1 и предварительно выбрать все Model3-объекты на каждый Model1-объект . Я не понимаю, как я могу это сделать.
Что я делаю не так?
Спасибо.