我如何 select 特定 list:reference 字段引用的所有项目?

How can I select all items referenced by a specific list:reference field?

我的简化数据库是

db.define_table('my_items',Field('name_'),
            format = '%(name_)s'
)

db.define_table('my_categories',Field('name_'),
            Field('slug'),
            Field('items_', 'list:reference my_items'),
            format = '%(name_)s'
            )

在控制器中,我尝试获取特定类别中的每个项目:

def test():
    items = db(db.my_items.id.belongs(db(db.my_categories.slug == request.args[0])._select(db.my_categories.items_)[0])).select(db.my_items.ALL)
    return dict(items=items)

这个 returns 即使数据库中有类别并分配了一些项目,并且给出了正确的 slug,也什么都没有。我使用 belongs 不正确吗?不要建议我使用第三个 table,这是故意非规范化的。

在这种情况下,不要进行嵌套 select。相反,做一个单独的查询来获取 id 的列表:

item_ids = db.my_categories(slug=request.args[0]).items_
items = db(db.my_items.id.belongs(item_ids)).select()