2010-12-21 2 views
1

로컬로 효율적으로 작업 할 수 있도록 App Engine 데이터를 다운로드하고 싶습니다 (일부 PDF를 기반으로 생성하고 있습니다). ReferenceProperty의 열에 키 또는 ID가 아닌 참조 된 모델의 특정 속성이 채워지도록 정의하려면 어떻게해야합니까? 내가 지금처럼 bulkloader.yaml에 property_map를 설명에도 불구하고, 그러나bulkloader를 사용하여 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 

어떻게이 부서 열이학과 모델의 '이름'속성으로 채워 가져옵니다 정의 할 수 있습니다?

 
    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 

따라서 위의 방법은 수출에서 호출됩니다!

관련 문제