Qual tipo de propriedade eu uso para colocar um usuário user_id () no datastore?
-
22-09-2019 - |
Pergunta
É por isso que preciso colocar user_id () no DataStore:
Um valor do usuário no armazenamento de dados não será atualizado se o usuário alterar seu endereço de e -mail. Isso pode ser remediado em um lançamento futuro. Até então, você pode usar o valor do usuário user_id () como o identificador exclusivo estável do usuário.
http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#users_user
Dentro do armazenamento de dados, o valor é igual ao endereço de email mais o ID exclusivo do usuário. Se o usuário alterar seu endereço de e -mail, o novo valor do usuário não será igual ao valor original do usuário nas consultas do datastore ou quando comparado pelo aplicativo. Se o seu aplicativo precisar de um identificador estável que não mudar, você poderá armazenar o ID exclusivo separadamente do valor do usuário.
http://code.google.com/appengine/docs/python/users/userobjects.html
Como eu faço isso?
E como você sabia (ou onde você procurou?)
Solução
A resposta usual é "sem propriedade": se você precisar de um identificador estável, provavelmente é porque você está procurando usuários, nesse caso, você deve usá -lo como o nome da entidade, assim:
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 você realmente precisa armazenar um identificador para o usuário em outro lugar, pode usar um db.stringProperty para armazenar o ID do usuário.