python - 修改 Google App Engine 实体 ID?

标签 python google-app-engine

我正在使用 Google App Engine NDB。有时我想要获取指定列表中具有电话号码的所有用户。为此,使用查询的成本非常高,所以我想我只需将 User 实体的 id 值设置为用户的电话号码,这样我就可以直接通过 ids 获取。

问题是电话号码字段是可选的,因此最初创建的用户实体没有电话号码,因此没有 id 值。因此,它将被创建为user = User(),而不是user = User(id = Phone_number)

因此,当用户稍后决定向其帐户添加电话号码时,是否可以将该用户实体的 id 值修改为新电话号码?

最佳答案

实体 ID 构成实体主键的一部分,因此无法更改它。更改它与使用新 key 创建新实体并删除旧实体相同 - 如果您愿意,这是您可以做的一件事。

更好的解决方案是创建一个 PhoneNumber 类型,提供对关联 User 的引用,允许您使用 get 操作进行查找,但不需要每个用户只拥有一个电话号码。

关于python - 修改 Google App Engine 实体 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977110/

相关文章:

python - 是否可以禁用跳转到列表末尾?

python - 将图像上传到 Google App Engine 并与用户共享图像

google-app-engine - Golang Appengine 项目无法构建

java - 无法安装 Google App Engine 插件 (Eclipse 3.6)

google-app-engine - 父级驻留在数据存储中,分配使用 CSV 批量加载器上传的子级

python - Tensorflow 1.14 : tf. numpy_function 映射时会丢失形状?

Python导入空文件夹

python - Scrapy - 发送具有多个选项的表单数据

python - 在嵌套循环中查找 max 的最小索引,键严格位于第 0 个索引

python - 谷歌应用引擎: "Cannot create a file when that file already exists"