存储* GAE本地数据存储的键在DataStoreViewer中给我错误

I have a *Key in entity A referring entity B. I can put() the data to data store without error but when try to browse entity A from Datastore Viewer, it gives the following error:

'Incomplete key found for reference property %s.' % name) BadValueError: Incomplete key found for reference property ds_key.

it seems blaming the key to be incomplete. If I use NewKey() to acquire a complete key, I need to manually provide a unique string or int ID to the key which is not what I want. I just want datastore generate a key of B for me and I keep that key from entity A.

thanks

Put() returns a complete Key even when you Put() with an incomplete Key. You need to

  1. Generate an incomplete Key for B (no need to manually provide a unique ID).
  2. Put() B to the datastore and look at the return value so you have a complete Key for it.
  3. Use that value in entity A.
  4. Put() A to the datastore.

Now A will correctly reference B.