在开始有些尴尬之后,我的冒险实体组继续(请参阅Under some circumstances an App Engine get_by_key_name
call using an existing key_name returns None)。使用get_by_key_name(Python)获取App Engine中的子实体列表
我现在看到我无法对正常的get_by_key_name
调用一个实体列表,这些子实体具有多个父实体。作为模型文档说,
的多个实体由一个 (
get_by_key_name
)调用请求都必须有 相同的父。
我得到了到做类似下面的习惯:
# Model just has the basic properties
entities = Model.get_by_key_name(key_names)
# ContentModel has all the text and blob properties for Model
content_entities = ContentModel.get_by_key_name(content_key_names)
for entity, content_entity in zip(entities, content_entities):
# do some stuff
现在ContentModel实体模型实体的孩子,这不会因为单亲要求工作。
使用实体组启用上述场景的一种简单方法是能够将一个父母列表传递给get_by_key_name
调用,但我猜测这是目前不可行的一个很好的理由。我想知道这是否是一个硬性规则(因为这样的调用绝对没有办法工作),或者可能修改db模块以便这种类型的调用可以工作,即使这意味着更大的CPU费用。
我也很想看看别人是如何完成这类任务的。我可以想到一些处理它的方法,比如使用GQL查询,但我不能想到方法调用get_by_key_name
的性能。
好主意。我几乎没有使用db.Key.from_path。 – jamtoday 2009-10-23 19:00:45
您可能对[栈交换建议](http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2“代码审查”)感兴趣。它几乎准备好开始测试,只需要更多。 – greatwolf 2011-01-19 05:08:14