批量上传中对象的祖先/父级

时间:2012-05-09 10:26:46

标签: google-app-engine

我有一个简单的模型,我创建的实例通常使用默认的父键(父项不是真正的模型)。这与GAE tutorial

中描述的方法相同
def simple_parent_key():
    return db.Key.from_path('simple', 'pathsimple')

class Simple(db.Model):
    """Basic simple model"""
    name = db.StringProperty()

我通常在帖子请求中创建一个对象,如下所示:

class AddSimple(webapp2.RequestHandler):
    def post(self):
        simple = Simple(parent=simple_parent_key())
        simple.name = self.request.get('name')

现在我想使用GAE的批量上传方法添加一些对象。问题是,我没有找到为批量上传指定父/祖先密钥的方法。将在没有父对象的情况下创建对象,并且使用父键的所有查询都不会返回这些新对象。从而打破了一致性。

有没有办法在批量上传文件中指定父键?

以下是bulkloader.yaml文件的一部分:

transformers:
- kind: Simple
  connector: csv
  property_map:
    - property: name
      external_name: name

上传工作正常,但没有任何父键,这就是我想要的。

欢迎任何提示。

1 个答案:

答案 0 :(得分:0)

使用create_deep_key创建父亲transform.create_deep_key的密钥。使用它有点棘手。我已成功创建父键,使用xml而不是csv

这是bulkloader.yaml中的属性键示例:

     - property: __key__ 
       external_name: key
       import_transform: transform.create_deep_key(('parentKind', 'parentKeyName'),
                                                   ('entityKind', transform.CURRENT_PROPERTY))

希望它有所帮助...