python - 在适用于 Python 的 App Engine 中,是否可以保留一个嵌套在其中的另一个对象的类?

标签 python google-app-engine nested datastore

在适用于 Python 的 App Engine 中,是否有类似 Objectify(Java 库)的东西,我可以在其中轻松地将一个类嵌入另一个类并将其保存到数据存储区?

此类的建模类似于以下示例,其中 Venue 包含 Location 对象。我想将其作为一个嵌套对象持久保存,并能够通过嵌入对象中的字段进行查询。

类 Location():
city = db.StringProperty()
state = db.StringProperty()

field 类(db.Model):
名称 = db.StringProperty()
位置 = 位置 ()

这里是关于它如何在 App Engine for Java 的 Objectify 中工作的信息。
http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#@Embedded

这可能使用 Python 吗?

最佳答案

考虑使用引用属性。 IE。将 Location 对象存储为它自己的实体,并通过引用将该位置合并到 Venue 对象中。

class Location():
  city = db.StringProperty()
  state = db.StringProperty()

class Venue(db.Model):
  name = db.StringProperty()
  location = db.ReferenceProperty(Location)

然后,如果您想同时在 Location 和 Venue 上进行交易,请使用数据存储交易。

编辑:要查询“包含”对象中的字段,请使用数据存储“反向引用”。 IE。 Venue 包含对 Location 的引用这一事实意味着 Location 也包含对 Venues 的引用。请参阅:http://code.google.com/appengine/docs/python/datastore/datamodeling.html#References

关于python - 在适用于 Python 的 App Engine 中,是否可以保留一个嵌套在其中的另一个对象的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6753545/

相关文章:

java - 与嵌套 for 循环作斗争

python - 比较python中的希伯来语字符串

python - Fastapi/Tortoise 早期模型初始化

python - Bash相当于Python的字符串文字,用于utf字符串转换

python - 复制列表 : editing copy without changing original

google-app-engine - 应用引擎/去 : 'goapp serve' giving an error "Go application could not be built" error

google-app-engine - 解析go.mod时出错,如何在具有Cloud build的App Engine上部署go app?

javascript - 嵌套 Json 访问值

go - 如何仅将一个文件部署到Google App Engine?

actionscript-3 - 评估 AS3 中包含嵌套影片剪辑的路径字符串