2012-06-27 2 views
2

Итак, я пытаюсь создать объект с родителем с использованием bulkloader.Загрузка объекта с родителем с использованием bulkloader

У меня есть объект клиента:

class Client(db.Model): 
    identifier = db.StringProperty() 
    www_ip = db.StringProperty() 
    local_ip = db.StringProperty() 
    status=db.BooleanProperty() 

И я хочу, чтобы создать entiy данных в качестве ребенка Клиента.

class Data(db.Model): 
    songscount = db.IntegerProperty() 
    nextorder = db.IntegerProperty(default=1) 
    players = db.ListProperty(str) 
    previousplayer = db.StringProperty() 

Клиентское существо существует. Data.yaml есть (без преамбулы):

transformers: 
- kind: Data 
    connector: csv 
    connector_options: 
    # TODO: Add connector options here--these are specific to each connector. 
    property_map: 
    - property: __key__ 
     external_name: key 
     import_transform: transform.create_deep_key(('Client', '__key__'), ('Data', transform.CURRENT_PROPERTY)) 
     export_transform: transform.key_id_or_name_as_string 

    - property: nextorder 
     external_name: nextorder 
     import_transform: transform.none_if_empty(int) 

    - property: players 
     external_name: players 
     import_transform: transform.none_if_empty(users.User) # Assumes email address 

    - property: previousplayer 
     external_name: previousplayer 
     import_transform: transform.none_if_empty(users.User) # Assumes email address 

    - property: songscount 
     external_name: songscount 
     import_transform: transform.none_if_empty(int) 

Я понимаю, что либо transform.create_foreign_key или transform.create_deep_key нужно использовать. Я не понимаю, как сообщить о моем объекте Client (который является родителем).

Обнаружил один такой вопрос How to set parent for datastrore entity during bulkloading data by appcfg.py on Google App Engine?, но «Конфигурация кода» устарела.

Благодаря

ответ

2

Старый вопрос, но в будущем, по-видимому, ответ здесь:

- property: __key__ 
     external_name: key 
     import_transform: transform.create_deep_key(('clientKey‘, ‘clientKey‘),(’key‘, transform.CURRENT_PROPERTY)) 
     export: 
     - external_name: clientKey 
     export_transform: transform.key_id_or_name_as_string_n(0) 
     - external_name: key 
     export_transform: transform.key_id_or_name_as_string_n(1) 

(адаптировано из http://longsystemit.com/javablog/?p=23)

Смежные вопросы