ndb how google engine delete create app python google-app-engine app-engine-ndb djangoappengine

python - how - Identificación de la clave personalizada de Google App Engine NDB



ndb properties (3)

Cuando creo un objeto con el método ndb put, crea la clave automáticamente del tipo Key (kind, id) donde id es un número. En toda la documentación, muestra que puede usar una cadena para la identificación de la clave, pero no pude encontrar cómo hacerlo automáticamente cuando se crea un objeto.

Tengo un modelo de usuario y estaba pensando en usar el nombre de usuario del usuario (ya que es único) como identificación de la clave para una recuperación más rápida. ¿Es eso incluso una buena idea? ¿Tendría algún problema con el nombre de usuario dado que el usuario lo envió (estoy validando la entrada)?


También puede suministrar ID entero (no necesariamente una cadena) para su entidad modelo.

class User(ndb.Model): ... user = User(id=1234567890, ...) user.put()


Usted especifica la identificación de la entidad en el momento de la creación. Cuando define el modelo, no establece un atributo de id allí. Por lo tanto, por ejemplo, tiene:

class User(ndb.Model): # fields here

Cuando creas el modelo, tienes:

user = User(id=''username'', ...)

Como el nombre de usuario es único y usted valida su entrada, entonces no tendrá ningún problema con este enfoque.

Para obtener más información acerca de un constructor de ndb Model , puede echar un vistazo a NDB Model Class - Constructor .

Espero que esto ayude.


class UserModel(ndb.Model): ... user_model_entity = UserModel(id=''some_string'', ...)

Si estas identificaciones están sujetas a cambios, esta puede ser una mala idea. Si se trata de su propio sistema y puede reaccionar ante posibles cambios, es una buena idea, pero debe asegurarse de que los ID sean únicos y relativamente estables antes de decidirse a usarlos.