2010-12-21 6 views
1

App Engineのデータを効率的にローカルで操作できるように、私はApp Engineのデータをダウンロードしたい(私はそれに基づいていくつかのPDFを生成している)。 ReferencePropertyの列に、キーまたはIDだけではなく参照モデルの特定のプロパティが設定されるように定義するにはどうすればよいですか?私はそうのようなbulkloader.yamlにproperty_mapを記載しているにもかかわらず、しかしバルクローダーを使用してApp Engineデータをダウンロードするとき、ReferencePropertyクラスからプロパティを取得するにはどうすればよいですか?

 
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) 

 
- 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

 
    dept  secret key 
1184017 mySecret myKey 

Departmentモデルの 'name'プロパティによってdeptカラムが設定されるように定義するにはどうすればよいですか?

 
    dept  secret key 
myDept mySecret myKey 

おかげで、 ポール

答えて

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 

を、したがって、上記の方法は、輸出に呼び出されました!

関連する問題