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?)

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top