¿Qué tipo de propiedad que utilizo para poner user_id de un usuario () en el almacén de datos?
-
22-09-2019 - |
Pregunta
Esta es la razón por la que necesito para poner user_id () 's en el almacén de datos:
Un valor del usuario en el almacén de datos no lo hace actualizarse si el usuario cambia su dirección de correo electrónico. Esto puede remediarse en una versión futura. Hasta entonces, se puede utilizar user_id del valor de usuario () como el estable identificador único del usuario.
http://code.google.com/appengine /docs/python/datastore/typesandpropertyclasses.html#users_User
Dentro del almacén de datos, el valor es igual a la dirección de correo electrónico además de la ID único del usuario. Si el usuario cambia su dirección de correo electrónico, el nuevo valor del Usuario no será igual al valor de usuario original en el almacén de datos de consultas o cuando se compara por la aplicación. Si su aplicación necesita un establo identificador que no cambia, se puede almacenar el ID único separado a partir del valor del usuario.
http://code.google.com/appengine/docs /python/users/userobjects.html
¿Cómo lo hago?
Y ¿cómo lo sabes (o dónde lo buscas?)
Solución
La respuesta habitual es "ninguna propiedad": Si necesita un identificador estable, es probable que sea porque está buscando usuarios por ella, en cuyo caso se debe utilizar como el nombre de la clave de la entidad, así:
class UserInfo(db.Model):
is_admin = db.BooleanProperty(required=True, default=False)
user_info = UserInfo.get_or_insert(users.get_current_user().user_id())
Si realmente necesita para almacenar un identificador para el usuario en otro lugar, se puede utilizar un db.StringProperty para almacenar el ID de usuario.