gpt4 book ai didi

python - 仅从 App Engine 中的 ReferenceProperty 获取 Key/id

转载 作者:太空狗 更新时间:2023-10-29 16:53:25 30 4
gpt4 key购买 nike

我可以在 AppEngine 领域使用一些帮助...

使用 [Python] API,我从文档中创建如下示例的关系:

class Author(db.Model):
name = db.StringProperty()

class Story(db.Model):
author = db.ReferenceProperty(Author)

story = db.get(story_key)
author_name = story.author.name

据我了解,该示例将进行两个数据存储区查询。一个用于获取故事,然后一个用于尊重作者以访问名称。但我希望能够获取 id,所以执行以下操作:

story = db.get(story_key)
author_id = story.author.key().id()

我想只是从引用中获取 id。我不想必须尊重(因此查询数据存储)ReferenceProperty 值。

从阅读文档中可以看出

the value of a ReferenceProperty is a Key

这让我想到我可以只对引用的值调用 .id() 。但它也说:

The ReferenceProperty model provides features for Key property values such as automatic dereferencing.

我找不到任何解释何时引用发生的内容?
对 ReferenceProperty 的值调用 .id() 是否安全?
是否可以假设调用 .id() 不会导致数据存储查找?

最佳答案

为了帮助其他搜索者而回答我自己的问题...

怀疑调用 story.author.key().id() 甚至 story.author.id() 将导致数据存储查询。正确方法dictated by the API docs是:

story = db.get(story_key)
author_id = Story.author.get_value_for_datastore(story).id()

关于python - 仅从 App Engine 中的 ReferenceProperty 获取 Key/id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044121/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com