1

我想下载我的 App Engine 数据,以便可以在本地有效地对其进行操作(我正在基于它生成一些 PDF)。如何定义 ReferenceProperty 的列由引用模型的特定属性填充,而不仅仅是键或 id?

这是我的模型类:

类部门(db.Model):
   名称 = db.StringProperty()

类用户(db.Model):
   userKey = db.StringProperty(必需=真)
   秘密 = db.StringProperty()
   部门 = db.ReferenceProperty(部门,必需 = True)

但是,即使我在 bulkloader.yaml 中描述了一个 property_map,如下所示:

- 种类:用户
  连接器:csv
  连接器选项:
  属性地图:
    - 属性:__key__
      外部名称:键
      export_transform:transform.key_id_or_name_as_string

    - 属性:部门
      外部名称:部门
      import_transform: transform.create_foreign_key('部门')
      export_transform:transform.key_id_or_name_as_string

    - 属性:秘密
      外部名称:秘密

    - 属性:userKey
      外部名称:用户密钥

我总是以 CSV 中的部门键结束

例如

   部门密钥
1184017 mySecret myKey

如何定义部门模型的“名称”属性填充部门列?

例如

   部门密钥
myDept mySecret myKey

谢谢,保罗

4

1 回答 1

1

创建一个文件 uploadutil.py 并在其中添加此方法:

def prop_converter(dept):
  # load the department then return the property you want
  return dept.name

然后在 bulkloader.yaml 中添加:

为 uploadutil 添加导入:

import: uploadutil

并添加属性:

- property: dept
    external_name: dept
    import_transform: transform.create_foreign_key('Department')
    export_transform: uploadutil.prop_converter

因此在导出时调用上述方法!

于 2010-12-21T22:49:47.980 回答