Quel type de propriété dois-je utiliser pour mettre le user_id () d'un utilisateur dans le magasin de données?

StackOverflow https://stackoverflow.com/questions/1593367

Question

Ceci est la raison pour laquelle je dois mettre user_id () de la Banque de données:

  

Une valeur de l'utilisateur dans le magasin de données ne   obtenir mis à jour si l'utilisateur change son   adresse e-mail. On peut y remédier en   une version future. Jusque-là, vous pouvez   utiliser le user_id () de la valeur de l'utilisateur comme   identifiant unique stable de l'utilisateur.

     

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

     

Dans le magasin de données, la valeur est   égale à l'adresse e-mail ainsi que le   ID unique de l'utilisateur. Si l'utilisateur change   son adresse e-mail, la nouvelle valeur de l'utilisateur   ne sera pas égale à la valeur d'origine de l'utilisateur   dans les requêtes de magasin de données ou par rapport   par l'application. Si votre application a besoin d'une stabilité   identifiant qui ne change pas, vous   peut stocker l'ID unique séparément   de la valeur de l'utilisateur.

     

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

Comment puis-je faire?

Et comment saviez-vous (ou où avez-vous regardé vers le haut?)

Était-ce utile?

La solution

La réponse habituelle est « pas de propriété »: Si vous avez besoin d'un identifiant stable, il est probablement parce que vous êtes à la recherche des utilisateurs par elle, dans ce cas, vous devez l'utiliser comme nom de clé pour l'entité, comme suit:

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 vous avez vraiment besoin de stocker un identifiant pour l'utilisateur ailleurs, vous pouvez utiliser un db.StringProperty pour stocker l'ID utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top