1
records_to_put = []
events_to_put = []
record = Record.get_or_insert(json_record['record_id'], ...)
records_to_put.append(rec)
event = Event.get_or_insert(json_event['event_id'], parent=record.key)
events_to_put.append(event)
ndb.put_multi_async(records_to_put)
ndb.put_multi_async(events_to_put)
Event
將永遠是Record
的孩子。由於異步性質,如果event
實例首先保存,但它的父實例尚未保存,會發生什麼情況。它會拋出異常還是允許這樣做?如何在異步保存父/子實體時處理父實體?
如果您手動分配id/key_name,那麼您可以安全地在父代之前創建子代。 –
@TimHoffman我已經更新了這個問題,並添加了我插入ID的方式。在這種情況下,我應該安全正確? – Houman
是的,如果父鍵不是自動生成的,那麼您將始終擁有父鍵的完整鍵。這是防止先寫孩子的唯一方法。 –