查询嵌套的KeyProperties

2024-04-26 04:42:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下型号:

class Company(ndb.Model):
    name = ndb.StringProperty(indexed=False)
    # some other fields

class User(polymodel.PolyModel):
    company = ndb.KeyProperty(kind=Company)
    # some other fields

class Object(ndb.Model):
    user = ndb.KeyProperty(kind=User)
    # some other fields

现在我有了一个user,我想查询Objects,它们与同一公司中的其他Users关联,如下所示:

Object.query(Object.user.company == user.company)

当然,这不起作用,因为Object.user是一个键,我不能访问除此之外的任何内容

有什么办法吗?我只需要公司密钥,我正在考虑一个ComputedProperty但我不确定这是否是最好的解决方案。另外,最好基于company中的任何字段进行查询


Tags: fieldsmodelobject公司somecompanyclassother
1条回答
网友
1楼 · 发布于 2024-04-26 04:42:56

您需要取消规范化并存储冗余信息,因为数据存储不支持连接

例如,给定上述模型,用户只能是一个公司的成员,如果确实需要搜索其用户是特定公司成员的所有对象,则将公司密钥存储在该对象中

如果最适合您,请使用计算属性

或者使用一个总是将用户作为参数的工厂,并以此方式构造对象

相关问题 更多 >