2010-05-13 16 views

Respuesta

5

Use db.allocate_ids() como se describe here para generar identificadores únicos para sus entidades.

Aquí está un ejemplo rápido derivado del ejemplo en el enlace de arriba:

from google.appengine.ext import db 

# get unique ID number - I just get 1 here, but you could get many ... 
new_ids = db.allocate_ids(handmade_key, 1) 

# db.allocate_ids() may return longs but db.Key.from_path requires an int (issue 2970) 
new_id_num = int(new_id[0]) 

# assign the new ID to an entity 
new_key = db.Key.from_path('MyModel', new_id_num) 
new_instance = MyModel(key=new_key) 
... 
new_instance.put() 

(issue 2970 reference)

+1

O simplemente no especifique una clave, y deje que el almacén de datos genere uno para usted, lo que tendrá exactamente el mismo efecto. –

+0

@NickJohnson, eso es [ya no es cierto] (https://cloudplatform.googleblog.com/2013/05/update-on-datastore-auto-ids.html) a partir de la versión 1.8.1 de Google App Engine. –

Cuestiones relacionadas