Quale tipo di proprietà posso utilizzare per mettere user_id di un utente () nel Datastore?
-
22-09-2019 - |
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?)
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.