我想下载我的App Engine数据,以便我可以在本地有效地操作(我正在基于它生成一些PDF)。 如何定义ReferenceProperty的列由引用模型的特定属性填充,而不仅仅是键或id?
以下是我的模型类:
class Department(db.Model): name = db.StringProperty() class User(db.Model): userKey = db.StringProperty(required=True) secret = db.StringProperty() dept = db.ReferenceProperty(Department, required=True)
但是,即使我在bulkloader.yaml中描述了一个property_map,如下所示:
- kind: User connector: csv connector_options: property_map: - property: __key__ external_name: key export_transform: transform.key_id_or_name_as_string - property: dept external_name: dept import_transform: transform.create_foreign_key('Department') export_transform: transform.key_id_or_name_as_string - property: secret external_name: secret - property: userKey external_name: userKey
我总是以CSV中的部门键结束
e.g。
dept secret key 1184017 mySecret myKey
如何定义dept列由Department模型的'name'属性填充?
e.g。
dept secret key myDept mySecret myKey
感谢, 保罗
答案 0 :(得分: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
因此在导出时调用上述方法!