【发布时间】:2017-05-08 21:35:21
【问题描述】:
我有两种型号 Storage 和 Drawers
class Storage(BaseModel):
id = PrimaryKeyField()
name = CharField()
description = CharField(null=True)
class Drawer(BaseModel):
id = PrimaryKeyField()
name = CharField()
storage = ForeignKeyField(Storage, related_name="drawers")
目前我正在通过选择查询生成 json
storages = Storage.select()
结果我得到了一个 json 数组,如下所示:
[{
description: null,
id: 1,
name: "Storage"
},
{
description: null,
id: 2,
name: "Storage 2"
}]
我知道,peewee 允许使用storage.drawer() 查询所有抽屉。但是我正在努力为每个包含该存储的所有抽屉的存储包含一个 json 数组。我尝试使用连接
storages = Storage.select(Storage, Drawer)
.join(Drawer)
.where(Drawer.storage == Storage.id)
.group_by(Storage.id)
但我只是检索了第二个有抽屉的存储,但不包括抽屉数组。这甚至可以通过连接实现吗?还是我需要遍历每个存储检索抽屉并将它们附加到存储?
【问题讨论】: