Domanda

Questo è il motivo per cui ho bisogno di mettere user_id () 's nel Datastore:

  

Un valore d'uso nel datastore non lo fa   ottenere aggiornato se l'utente cambia la sua   Indirizzo email. Ciò può essere rimediato in   una versione futura. Fino ad allora, si può   utilizzare user_id del valore di utente () come   stabile identificatore univoco dell'utente.

     

http://code.google.com/appengine /docs/python/datastore/typesandpropertyclasses.html#users_User

     

All'interno del datastore, il valore è   uguale all'indirizzo di posta elettronica più il   ID univoco dell'utente. Se l'utente passa   il suo indirizzo di posta elettronica, il nuovo valore d'uso   Non sarà uguale al valore d'uso originale   nelle query datastore o se confrontato   per l'applicazione. Se la vostra applicazione ha bisogno di una stabile   identificatore che non cambia, è   in grado di memorizzare l'ID univoco a parte   dal valore di utente.

     

http://code.google.com/appengine/docs /python/users/userobjects.html

Come posso fare?

E come facevi a sapere (o dove hai guardato in su?)

È stato utile?

Soluzione

La risposta abituale è "nessuna proprietà": Se avete bisogno di un identificatore stabile, è probabilmente perché siete alla ricerca degli utenti da esso, nel qual caso si dovrebbe usare come il nome della chiave per l'entità, in questo modo:

class UserInfo(db.Model):
  is_admin = db.BooleanProperty(required=True, default=False)

user_info = UserInfo.get_or_insert(users.get_current_user().user_id())

Se si ha realmente bisogno di memorizzare un identificatore per l'utente altrove, è possibile utilizzare un db.StringProperty per memorizzare l'ID utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top